刷题记录
为了备战校赛work一下(
WEEK1
[HCTF]warmup
F12查看发现source.php源码访问hint.php可以发现
flag not here, and flag in ffffllllaaaagggg
代码审计环节,接受file参数
1 | |
可以看到白名单只有$whitelist = ["source" => "source.php", "hint" => "hint.php"];
但是
1 | |
截断绕过白名单
payload:?file=source.php?/../../../../ffffllllaaaagggg
因为不知道flag的具体位置所以目录穿越
[BJDCTF 2020]The mystery of ip
查看flag.php,给了一个ip。
yakit抓包更改X-Forwarded-For,有回显,ssti注入执行

这是个php的模板引擎注入,使用smarty模板
1 | |
所以可以用类似于php标签的形式完成注入。{if phpinfo()}{/if}
[极客大挑战 2019] Havefun
F12看注释改参数cat=dog即可
[SUCTF 2019] EasySQL
输入数字回显全为1,其他也过滤为nonono
参考其他师傅的wp,推测后端代码为
1 | |
version 1
1 | |
在 SQL(结构化查询语言)中,星号(*)是一个通配符,用于表示“所有列”。这是 SQL 标准的一部分,被所有主流关系型数据库(如 MySQL、PostgreSQL、Oracle、SQL Server 等)广泛支持。
所以这里的*会选取flag表中的所有列,同时1||flag作为一个表达式列。由于*已经包含了flag列,查询结果会直接显示flag字段的内容。因此,输入*,1即可得到flag。
version2
堆叠注入
1 | |
将管道符改为连接符
1 | |
执行三条语句即可
[强网杯 2019] 随便注
终于碰见一个可以用梭的题了吗?
1 | |
并非,只能梭出来supersqli数据库,但是库里没表,感觉被骗了(
实际使用堆叠注入发现不止这个库,然后查查表
1 | |
也可以通过更改表名获取flag
1 | |
感谢参考师傅
1 | |
[CISCN 2019 华北赛区 Day2 Web1] Hack World
fuzz测试可以sleep(5)有回显,时间盲注
基于用ascii码计算单个字符的范围限定实现注入。
1 | |
写个盲注的脚本就可以注出来了(
reflection
- 打了几个sql注入,最大的感受是sqlmap作为一个梭不能很好地发挥作用,实际还是要手动测试才能实现注入(也有可能是我不会用吧😭
- 代码审计也是很久没看了,但是白盒且短篇幅的审计还是比较好构造的
- php的模板注入还是第一次见,之前都打的是python的模板注入
WEEK2
[极客大挑战 2019] LoveSQL
union注入
1 | |
[ACTF 2020] upload
一句话木马发现php被ban了,尝试phtml成功,挂马用蚁剑连了。
可能绕过后缀:php3,phtml,PHP,phphp,php%00.jpg
不过这个题目只能用phtml解析
[SUCTF 2019]CheckIn
一句话木马,检查了文件内容<?,用script短标签绕过以后发现exif_imagetype报错
1 | |
所以要加文件头,gif文件头ascii为GIF89a。
上传成功后访问:uploads/1e833b2b9e905399ad5c0640a03817c1(目录一直没变
可以得到一个疑似可以解析的页面,但是蚁剑连不上。
传.htaccess被禁了,传.user.ini先解析shell.gif可以蚁剑直链
BUU LFI COURSE
高亮了index.php
1 | |
接受flie参数,include路径文件
(尝试了flag.txt,flag.php结果最后是\flag
文件包含最简版~
[SWPU2019]Web4(thinking)
也是个sql注入,倒下……
点登录框没反应,yakit抓包观察回显
测试结果显示:无回显,只有报错回显1’,而1’;正常,应该是堆叠注入
堆叠注入+报错注入是盲注。
使用了sleep观察没有回显,使用了各种关键字都没什么反应,可能是过滤了吧。
然后只能狼狈地查找各位师傅的wp,发现是mysql预处理+十六进制处理。1'; SET @a = 0x53454C45435420534C454550283529; PREPARE stmt FROM @a; EXECUTE stmt; --这个payload实现了select sleep(5)。
对不起我只好抄抄板子了,我太弱小了。
观察抓包的信息可以发现url的参数是r=Login/Login