安卓7以上APP抓包环境配置
变化安卓 7 以后引入了 SSL pinning ,最直接影响是:用户所安装的证书不再被系统信任,导致不能抓取 https 流量。
解决方法解决办法各种各样:
将证书安装到系统证书目录(需要 root )
安卓7+导证书到系统目录
xposed+justtrustme(需要 root+xposed )
简单记录下 xposed+justtrustme 环境配置过程。
手机环境
oneplus 2(已解锁 OME、BootLoader )
lineageos(android9)
root(magisk v23.0)
Xposed(riru v25.4.4 + riru-xposed v0.5.2.2)
MagiskTwrp 刷入 magisk 安装 zip 包就可以,最新版下载地址。
下载安装最新版 Magisk app (下载地址),点击 Magisk 隔壁的 install 自动安装,过程需要下载国外资源,有条件则科学上网。
Magisk app 更新对应是 App 隔壁的 install 。
Xposed
在 magisk app 管理器插件库中安装 riru 核心 ...
无处不在的syscall
syscall还会在哪里比较常见中低难度题目中,syscall 出现形式有:
syscall 是在 text 段里面作为 gadget 可以直接调用
在 64 位沙盒题目写 shellcode 执行 orw 时,使用 syscall 进行系统调用( 32 位系统调用是 int 0x80)
在 glibc 调用函数时也会出现 syscall ,比如 alarm、close 等等
调用 glibc 函数开头的 syscall 不需要泄露出 glibc 地址。因为可以看到这些 syscall 与 got 表中的地址处于同一个内存页,低字节覆盖就能将函数改为 syscall 。
各个版本 glibc 的每个函数 syscall 位置固定,也就是不要知道远程的 glibc 版本。
出题情景一般情况漏洞都是栈溢出,然后不带任何输出函数,就是无法泄露的 libc 地址或者知道远程 libc 版本(如果有输出函数就能调用输出函数泄露地址,成了简单题目)。
对于这种题目可以用 ret2dlresolve 解决。ret2dlresolve 会因题目位数和保护情况写 exp 利用难度不一,简单的可 ...
命令执行
3b66170c5fe40049880c93aad53606d3b61e1c7e1514dc037f29a97eca0a2920a1c970a36943b492db937a6c834f29870a5ff44a03e36b89c85e1ab9da8d310cb0865074e75fbce2d42b6d7a27e2bf310597e215cb074917a08dc66c515ea09158803e74c469e76775db6ac0c7acca3ce0891b08791bb0bf728e00c1b3473809f8c66b1906de4cb2b3133d1572babc09dc37014d4b73b0d9b23756d81d5ea48a84b179a8820ac55419e2e218864255932b6c9d3ad944b184c9c582c103cfe1f9df807388e9c4020bfb83d8d25b4c55f43a32a421de77fe27faf4d8ed09b158a7af96235ef38b807fe7330cff86c654cd49db3e7ee48aacf51 ...
树莓派提取固件
准备工作工具
树莓派 4B(OS:Raspberry Pi OS)
flashrom
双母头杜邦线
测试钩
开启树莓派SPI(串行外设接口)默认情况下禁用 SPI ,需要手动开启:
1sudo raspi-config
打开树莓派设置 -> Interface Options -> SPI -> enable 。配置完整后 /boot/config.txt 会取消注释 dtparam=spi=on ,代表是启用 SPI0 ,默认情况下使用 2 条芯片选择线(片选通道)。
如果正常开启会在 /dev 下会有两个驱动对应两个片选:
12ls /dev/spi*#/dev/spidev0.0 /dev/spidev0.1
Rapsberry Pi Zero、1、2 和 3 具有三个 SPI 控制器:
SPI0 具有两个芯片片选,在 Pi 都可用;还有一个仅在计算模块上的备用替代映射。
SPI1 具有三个芯片片选,除 Pi 1 以外的都能用。
SPI2 具有三个芯片片选,仅在 Pi 1、3 和 3+ 上可用。
在 Pi 4 上,有额外四个的 SPI ...
树莓派开启VNC远程连接
系统环境
树莓派 4B
系统:Raspberry Pi OS
Macbook
VNC 连接软件:Jump Desktop
Mac 用 Jump Desktop 连接需要配置 VNC 认证方式,采用图形化简单点
配置VNC服务端Raspberry Pi OS 非 Lite 版本都自带 VNC ,进入桌面后:
1菜单 > 首选项 > Raspberry Pi Configuration > Interfaces 勾选 VNC 选项 Enable
菜单栏会出现 VNC 图标,点击打开 VNC 配置页面,点解右上角进入详细设置:
12Options > Security > Encryption 选择 Prefer On 或者 Always On > Authentication 选择 VNC PasswordOptions > Users & Permissions > 选中 Standard User > 点击右侧的 Password 设置 VNC 密码
默认情况下 VNC 使用系统账号密码进行登录校验,Ju ...
SQL注入
SQL注入分类:
回显正常
联合查询 union select
回显报错
Duplicate entry()
extractvalue()
updatexml()
盲注
布尔型盲注
基于时间的盲注sleep()
联合注入联合语句是用来联合多个表进行查询。是将多个表合成为一个表。而在SQL注入中,联合查询的作用是:在已有的系统语句上,通过联合查询可以查询到数据库中的其他内容。
这里注意:联合查询时,输出的列数(字段数)需要一致才能成功,否则会报错 The used SELECT statements have a different number of columns
使用例子12语句1 union all 语句2语句1 union 语句2
union 和 union all 有细微差别,但影响不大都可以用:
union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
union all:对两个结果集进行并集操作,包括重复行,不进行排序;
当将语句 1 返回 false 时,才会显示语句 2 的查询结果,判断显示位时就是利用这一点。
思路顺序
...
2021 NSSCCTF Writeup
内幕比赛,详情见知乎:https://www.zhihu.com/question/504346560/answer/2263872552
easypwnglibc 2.31 堆下标溢出题目,与 2.31 关系不大,主要是 mmap 妙用
show 功能溢出:
delete 功能溢出:
泄露堆地址和 libc 地址属于是常规操作,malloc 不会清空残留指针
维持堆指针的列表 chunk_list 是存放在 mmap 分配的一个地址上。因为申请 size 没有上限,所以以 mmap 方式再申请一个堆块,将地址信息写到上面,这样就有一个确定的下标(两个 mmap 分配的堆块相对位置固定不变)。
利用思路两个:
伪造堆块造成堆重叠,攻击 tcache 覆盖 free_hook
直接攻击 tcache 管理堆块
EXP
思路1
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676 ...
CTFSHOW Web Writeup
WEB1
开发注释未及时删除
WEB2
js前台拦截 === 无效操作
12345678<script type="text/javascript"> //禁用右键 window.oncontextmenu = function(){return false}; //禁用选择复制 window.onselectstart = function(){return false}; //禁用F12 window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};</script>
禁用 JS
URL 前面加上 view-source: 查看源码
firefox 插件 Disable JavascriptWEB3
没思路的时候抓个包看看,可能会有意外收获
WEB4
总有人把后台地址写入robots,帮黑阔大佬们引路。
W ...
DVWA Writeup
0b7b9bed7a16e29ac425d0af3be5432d80148f30da35754f7ac3503b7d599414d9efddd2624723997f23f1a17a4bb0d986e82850f93db58b930ac22464cce1935a1a366a14dc12fa94043e06952c4922e41d307d15bb8d6ab8148c036d3a99f8171ccae4b0be2f03d0478cfaeb53ea871eae374aa30330860e4f39f4700e5d444b6b1dba166f3bf7143d42870d84aba7586c2ac6f5e77eba2774e81d0723baf16fb9584f6970653fd5f5a70994312a2a43f3908765a97e2e5a624caefe0ef81cd9004e1873fbcfa6a8465d1f66a7a4374e3b79104fa9a92525288fbf34fe44ca58503cfd60c2a401cd496056a1113f5a31632f5be9ceac59f ...
2021 NCTF ezheap Writeup(glibc2.32以上 UAF)
更换 glibc题目附件中包含有 glibc 2.33 没有符号表,习惯使用 glibc all in one 带符号表的,patchelf 更换程序链接的 glibc
1patchelf --set-interpreter /glibc/2.33/amd64/lib/ld-2.33.so --replace-needed libc.so.6 /glibc/2.33/amd64/lib/libc-2.33.so ezheap
程序漏洞堆块及其大小用两个全局列表维护,释放堆块时仅清空 size_list,地址信息依然留在全局列表
12345678910111213141516171819int delete(){ _DWORD *v0; // rax int v2; // [rsp+Ch] [rbp-4h] printf("Index: "); v2 = get_num(); if ( chunk_list[v2] && v2 >= 0 && v2 <= 15 ) { free((v ...