自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 HNctf pwn-ez_pwn

其实就是栈迁移的时候,一个栈空间是4个字节,代码里的aaaa其实就在图上ebp-0x38这个位置,也就是输入的字符s的位置,上面也说了,用gdb调试出来ebp与ecx的距离是 f68-f30=0x38。再回到这个图上,一个格子是4个字节,那四个格子就是16字节,16字节十六进制就是0x10,因为我们要把bin/sh放到栈上面用,所以s+0x10就相当于是第一个格子跳到了第五个格子,payload构造的时候四个参数已经用了前4个格子,/bin/sh就用第五个格子,这么说很抽象但是比较好理解。

2024-05-14 13:48:13 373 1

原创 蓝桥杯 pwn

看代码,可以发现两行过滤,第一行过滤了cat,第二行过滤了一些字符串,这里就不挨个转换了,可以自己转换成ASCII看看,总之就是/bin/sh没法输入进去,最后一行还有个return close(1),是关闭标准输出的意思。上面说了check函数里最后一行return close(1),所以可以用这种方式查看flag,这里我是本地建了个flag文件。查看伪代码,可以利用这两个read,在第一个输入,输入/bin/sh,第二个用来调用payload。IDA看一下,发现程序里有system函数,

2024-04-28 16:12:56 263 4

原创 2024XYctf pwn static_link

这题是64位的,64位则先使用寄存器RDI、RSI、RDX、RCX、R8、R9进行传参,如果多余6个参数,则再使用栈进行传参。上面也说了,需要三个寄存器,64位是依靠寄存器先传参,再调用,所以我们就直接找rdi,rsi,rdx的gadget就可以了。因为要改变bss段的保护属性,在构造完read函数之后,要在返回bss段,简单来说就是,32位是先调用函数,后传递参数,64位先传参,再调用。32位主要靠栈传参,也可以使用寄存器,栈传参的话是要根据位置。这个题要注意一下,32位和64位传参方式不一样,

2024-04-18 16:19:30 71 1

原创 2024XYctf pwn hello_world签到题

虽然在本地测试输出基本都一样,但是远程会开salr,所以利用程序中的函数a的libc和给的libc文件中函数a的libc(因为函数a在libc中是一直存在的)相减,就得出了偏移,这个偏移是不会变的,如果用泄露出的libc减去这个固定的距离,就得到了每次运行的基地址。标白的这一行就是libc的基地址,在运行程序的时候,这个数据会变,虽然他会变,但是这个地址和libc的基地址的偏移,也就是距离是不会变的。远程打的时候,只要把你远程泄露出来的地址,减去这个偏移,就相当于拿到了远程的基地址。

2024-04-18 16:15:52 89 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除