测试SQL防注入,用sqlmap工具及教程分享,注意Python版本

检测维修 0 125

突在今天然想,想到了,SQL它防注入,于是以是想,想对其进行测试一下,顺便,顺顺便便也想要,把教程发出来,呀

这里使用到的是sqlmap工具,一款用python编写的

请留意,这个sqlmap唯有在python2的环境之下才能够正常地去执行,python3是不可以的。

前言:

一、什么是SQL防注入?

存在攻击者,其成功地向服务器提交了恶意的SQL查询代码,程序在接收之后错误地把攻击者的输入当作查询语句的一部分来执行,由此而致使原始的查询逻辑被改变,还额外地执行了攻击者精心构造的恶意代码。

举例:’ OR ‘1’='1

这属于极为常见的SQL注入攻击,当我们输入用户名admin,接着密码输入’ OR ‘1’=1=‘1,在查询用户名与密码是否正确之际,原本要执行的实际上是SELECT * FROM user WHERE username=’’ and password=’’ ,经由参数拼接之后,会执行的SQL语句变为SELECT * FROM user WHERE username=’’ and password=’’ OR ‘1’=‘1’,此时1=1成立,进而自然就跳过了验证。

这样下来是很危险的

网站注入漏洞检测工具_sql注入攻击原理详解_sqlmap工具使用教程

但是,倘若情况再进一步严重,密码录入的内容是’;DROP TABLE user;– ,那么,SQL命令则是SELECT * FROM user WHERE username=‘admin’ and password=’’;drop table user;–’ ,当前这个时刻,我们便会直接将此表予以删除。

二、如何预防SQL注入

在python当中,我们能够运用参数字符串方法,如此一来即便我们借由SQL语句去进行参数伪造,就算到了服务端之时,这个被伪造SQL语句的参数也仅仅是单纯的字符,根本没办法起到攻击的功效。

把进入数据库的特殊字符,也就是’这种字符,还有"这种字符,以及尖括号,还有&字符,还有*字符,以及;字符等,进行转义处理,或者做编码转换。

建议在应用发布以前,运用专业的SQL注入检测工具开展检测,从而能够及时修补被找出的SQL注入漏洞。网络之中存有许多这方面的开源工具,像sqlmap、SQLninja等 。

网站要避免打印出,像类型错误,包括字段不匹配等那样的SQL错误信息,以此防止把代码里的SQL语句暴露出来,进而防止攻击者利用这些错误信息来进行SQL注入 。

下面进入正题:如何使用

相关推荐: