Pwn
OrientalGlass
这个人不是个蓝狗,什么都想写
展开
-
bjdctf_2020_babystack题解
send是模拟交互的情况,如果使用send(0x111)会有报错,并且发送的字符串要带上换行符,否则会无法结束输入。先输入一个整形数据用于确定buf串需要读入多少个字节,这里后续使用的是0x111。nbytes在buf下方,并且nbytes是qword类型,占8个字节。解释了为什么第一次send要使用字符串类型而不能直接发送int类型。不过这里还有一个异或就是本机运行该程序不能成功获取执行权,非常奇怪。再发送覆盖数据覆盖掉返回地址执行backdoor函数即可。首先输入一个足以覆盖掉返回地址的数字。原创 2023-01-08 18:06:59 · 315 阅读 · 0 评论 -
jarvisoj_level2题解
这题没有现成的system("/bin/sh")可以调用,但是有system函数和/bin/sh字符串。所以可以通过溢出修改返回函数为call system位置,并且将栈顶元素修改为/bin/sh所在地址。这样就可以成功执行system("/bin/sh")2.ida查看,很显然这里有栈溢出。4.寻找system和bin/sh。1.checksec查看。原创 2023-01-08 16:46:44 · 197 阅读 · 0 评论 -
pwndbg实现命令和输出分别在两个终端窗口 Exception occurred: context: [Errno 13] 权限不够问题
使用pwndbg调试程序时,命令和输出在同一终端,常常需要往上面反复翻找比较麻烦。单独使用终端1不会报错,所以设置之后需要打开两个终端或者使用指定的终端才可以。可以看到我的ubuntu系统打开的第一个终端默认是0,第二个是1。这是因为调整了默认的输出终端为1,打开的终端0无权输出。分离后的效果会方便一点(个人感觉)是因为打开的第二个终端默认是1。在单独一个终端使用pwndbg调试时,可能会提示:Exception occurred: context: [Errno 13] 权限不够: ‘/dev/pts原创 2023-01-08 15:30:26 · 1004 阅读 · 0 评论 -
ciscn_2019_n_8题解
是以&var[13]为起始地址的八个内存单元,由于是小端存储,所以覆盖要使得v[13]=0,v[14]=17。很显然输入字符串覆盖var数组里的值满足要求即可。1.checksec查看,保护全开感觉不妙。3.程序逻辑并不复杂,脚本很简单。2.ida打开查看程序。原创 2023-01-08 16:12:54 · 199 阅读 · 0 评论