Pikachu漏洞练习
1.暴力破解
由于在实际挖洞过程中暴力破解的可用性不高,所以此部分只总结思路,但是会演示在存在token的情况下如何爆破。
1.1 基于表单的爆破
这种情况就是直接抓包,暴力破解即可
1.2 服务器端验证码绕过
此时可以尝试抓包,看看验证码是否可以重复使用,如果不可以那么一般不可以暴力破解了。
1.3 客户端验证码绕过
客户端也就是页面前端,由于是前端设置验证码,只需要抓包,在放包时把验证码参数删去即可。
1.4 token防爆破?
抓包,发现存在token
采用pitchfork攻击方式
设置线程数为1
在Grep - Extract 选项添加参数:(要把value的值选中)
由于涉及到重定向的问题,这里选择always选项:
变量设置字典,token变量设置递归搜索
开始爆破就行了,结果如下:
2. xss(跨站脚本)
2.1 反射型xss(get)
此种情况属于输入框的内容以get的方式即在URL的参数中进行上传,例如输入框中填写aaa,其出现在了URL参数中
尝试直接在URL中插入xss命令。
3. SQL注入
漏洞原理:Web 程序代码中对于用户提交的参数未做过滤就直接放到 SQL 语句中执 行,导致参数中的特殊字符打破了 SQL 语句原有逻辑,黑客可以利用该漏洞执 行任意 SQL 语句,如查询数据、下载数据、写入 webshell 、执行系统命令以 及绕过登录限制等。
注入常规思路:
3.1 字符型注入(get)
输入的参数为字符型
尝试判断是否存在注入(已知存在账户vince),输入参数 vince’ and 1=1 %23
问题一:为什么要加%23呢? 因为在sql语句中 # 是注释符,在url编码中 #是 %23,目的是注释掉查询语句后面的符号,避免报错
问题二:为什么vince要加 ‘ ?因为是字符型输入,所以在查询语句中是$query=”select id,email from member where username=’$name’ “; 加了 ’ 是为了闭合前面的 ‘ ,只有这样后面添加的逻辑运算才会生效。
输入参数 vince’ and 1=2 %23,此时可以发现已经满足了SQL注入存在的两个条件。我们输入的参数可以被接到SQL语句中,查询数据库中的信息。
接着要猜解查询语句中的字段数 order by N
可以确定为字段数为2,接着就确定字段顺序,然后开始查询库。