1.get_shell
2.when_did_you_born
3.hello_pwn
4.level0
5.level2
6.cgpwn2
@TOC
1.get_shell
nc连接题
连接后ls | cat flag
2.when_did_you_born
file checksec
有canary保护,不能栈溢出
ida64
先输入v5,v5不能等于1926。再输入v4,注意有gets函数,不限制输入,但无法溢出,点进去v4,v5
发现var_18是v5,var_20是v4,那么可以输入v4时将v5的值覆盖为1926,就可以cat flag了
脚本
1 | #!/usr/bin/env python3 |
3.hello_pwn
file checksec 无canary保护,可以栈溢出
ida64
点进去sub_400686函数,发现是system(cat flag)
点进去unk_601068
下面的dword_60106c就是if中的条件。而read可输入10ull,可以将dword_60106c覆盖
1 | #!/usr/bin/env python3 |
4.level0
file checksec
ida64
注意vuln()或者vulnerable()函数一般是ida认为有漏洞的函数
vulnerable:易受攻击的
可以栈溢出
callsystem函数可以得到shell
脚本
1 | #!/usr/bin/env python3 |
5.level2
file checksec
ida32
buf可以溢出
打开字符串窗口看看有没有/bin/sh
1 | #!/usr/bin/env python3 |
6.cgpwn2
file checksec
ida32
可以输入一个name,长度为50,还可以输入一个s,有溢出漏洞
pwn函数中有system函数
地址为0x8055A
查看字符串窗口没有/bin/sh,但我们可以在name处输入一个/bin/sh,溢出调用system时把原来的echo hehehe覆盖掉,得到shell
name处地址
脚本
1 | #!/usr/bin/env python3 |
-------------本文结束感谢您的阅读-------------