1.暴力破解

由于在实际挖洞过程中暴力破解的可用性不高,所以此部分只总结思路,但是会演示在存在token的情况下如何爆破。

1.1 基于表单的爆破

image-20211203125450890

这种情况就是直接抓包,暴力破解即可

1.2 服务器端验证码绕过

此时可以尝试抓包,看看验证码是否可以重复使用,如果不可以那么一般不可以暴力破解了。

1.3 客户端验证码绕过

客户端也就是页面前端,由于是前端设置验证码,只需要抓包,在放包时把验证码参数删去即可。

1.4 token防爆破?

抓包,发现存在token

image-20211203130156176

采用pitchfork攻击方式

image-20211203130331052

设置线程数为1

image-20211203131053686

在Grep - Extract 选项添加参数:(要把value的值选中)

img

由于涉及到重定向的问题,这里选择always选项:

image-20211203131354123

变量设置字典,token变量设置递归搜索

image-20211203131443806

开始爆破就行了,结果如下:

image-20211203131633995

2. xss(跨站脚本)

image-20211204221544138

image-20211204221950749

2.1 反射型xss(get)

此种情况属于输入框的内容以get的方式即在URL的参数中进行上传,例如输入框中填写aaa,其出现在了URL参数中

image-20211204222627314

尝试直接在URL中插入xss命令。

3. SQL注入

漏洞原理:Web 程序代码中对于用户提交的参数未做过滤就直接放到 SQL 语句中执 行,导致参数中的特殊字符打破了 SQL 语句原有逻辑,黑客可以利用该漏洞执 行任意 SQL 语句,如查询数据、下载数据、写入 webshell 、执行系统命令以 及绕过登录限制等。

image-20220628215521946

注入常规思路:

image-20220628215729908

3.1 字符型注入(get)

输入的参数为字符型

image-20220628215807858

尝试判断是否存在注入(已知存在账户vince),输入参数 vince’ and 1=1 %23

image-20220628220357540

问题一:为什么要加%23呢? 因为在sql语句中 # 是注释符,在url编码中 #是 %23,目的是注释掉查询语句后面的符号,避免报错

问题二:为什么vince要加 ‘ ?因为是字符型输入,所以在查询语句中是$query=”select id,email from member where username=’$name’ “; 加了 ’ 是为了闭合前面的 ‘ ,只有这样后面添加的逻辑运算才会生效。

输入参数 vince’ and 1=2 %23,此时可以发现已经满足了SQL注入存在的两个条件。我们输入的参数可以被接到SQL语句中,查询数据库中的信息。

image-20220628221012758

接着要猜解查询语句中的字段数 order by N

image-20220628221700411

image-20220628221643857

可以确定为字段数为2,接着就确定字段顺序,然后开始查询库。