分享一下本人做题记录,不足之处多多指正。
这里先贴一波之前的做题记录,还在更新中(补之前的wp)
签到题:
直接加入qq群,公告里就有key:
Web2:
打开发现都是滑稽,查看源代码就可以找到key了:
文件上传:
上传php文件,显示不是图片,上传图片,又必须是php,显然普通上传不能同时满足这两个条件,所以上传个图片用burp抓包,发送到repeater:
观察到有个filename=”****.png”
判断文件名必须包含.png而且还需要包含.php,回顾以往绕过用%00截断,所以修改filename用%00截断,go一下就得到了flag:
计算题:
首先发现给出个计算式,想输入结果发现只能输一位,考虑把长度这个变量值改变,先查看源代码,点开源代码中一个链接,竟然发现了flag…:
Web基础GET:
代码给出当what=‘flag’时给出flag,所以在URL直接提交?what=flag就得到了flag:
Web基础POST:
代码和上题差不多,但是是post提交,无法在URL里提交,写段python脚本跑一下:
运行结果:
成功得到flag
矛盾:
源代码先是is_numeric判断num不是数字且下面判断num==1才能输出flag,绕过这个矛盾用%00截断,表单提交?num=1%00,即得到了flag:
Web3:
打开显示flag就在这里的对话框,一直弹弹弹,尝试burp抓包,什么也抓不到… 禁用这个对话框然后查看源代码,发现了一串字符:
前三个数字75,69,89正好是KEY的ASICII码,所以写段脚本变成字符:
运行结果:
得到key。
Sql注入:
网页显示查询key表,id=1的string字段,判断注入点是id,?id=’union…等等各种试页面均是毫无反应,很绝望才想到宽字节注入,先试验一下: ?id=%df’or 1=1%23,发现正常显示:
所以是宽字节注入。
查询key表,id=1的string字段,查找应该是两项,所以输入?id=%df%27 union select1,string from key where id=1%23,结果发现报了错:
应该是key既使字段名又是表名,出现了冲突,百度一下是用`key`包裹,所以最终输入:
? id=%df%27 union select 1,string from`key` where id=1%23 得到flag: