pwnable.tw unexploitable 分析
這題是和pwnable.kr差不多的一道題,主要區(qū)別在于沒有給syscall。所以需要自己去找。
只有read和sleep兩個函數(shù)。
思路一是首先劫持堆棧到bss段,然后調(diào)用read函數(shù)將sleep的got表中地址改成syscall(直接找到\x0f\x05),將/bin/sh放入bss中,然后設(shè)置rax為59調(diào)用syscall可以調(diào)用execve了,結(jié)果這個方法本地打通了遠(yuǎn)程打不通,不知道是什么原因。應(yīng)該是地址不一樣,所以決定先用write泄露一下地址然后再定位syscall。
未完待續(xù)
沒有續(xù)了,問題出在服務(wù)器程序把我的兩次read當(dāng)成一次了,間隔時間太短,sleep(0.1)掛了,sleep(3)ok
另一種方法是看別人的blog中有提到的,在劫持堆棧到bss段之后,可以先用syscall調(diào)用write泄露sleep地址,然后計(jì)算出/bin/sh\x00的地址,pop rdi,ret;地址和system地址,rax的值可以通過read函數(shù)的返回值來控制,也是一個很可行的思路。
轉(zhuǎn)載于:https://www.cnblogs.com/61355ing/p/10471488.html
總結(jié)
以上是生活随笔為你收集整理的pwnable.tw unexploitable 分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]Google的C++代码规范
- 下一篇: version control(版本控制