开发安全之:file_get_contents()漏洞利用

这篇具有很好参考价值的文章主要介绍了开发安全之:file_get_contents()漏洞利用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

攻击者可以控制 file_get_contents() 文件系统路径参数,借此访问或修改原本受保护的文件。

Details

当满足以下两个条件时,就会产生 path manipulation 错误:

1.攻击者能够指定某一文件系统操作中所使用的路径。

2. 攻击者可以通过指定特定资源来获取某种权限,而这种权限在一般情况下是不可能获得的。

例如,在某一程序中,攻击者可以获得特定的权限,以重写指定的文件或是在其控制的配置环境下运行程序。 在这种情况下,攻击者可以指定通过 mysql_query() 进入程序的值,这一数值用于通过 file_get_contents() 访问文件系统资源。

例 1: 下面的代码使用来自于 HTTP 请求的输入来创建一个文件名。程序员没有考虑到攻击者可能使用像 "../../tomcat/conf/server.xml" 一样的文件名,从而导致应用程序删除它自己的配置文件。 $rName = $_GET['reportName'];

$rFile = fopen("/usr/local/apfr/reports/" . rName,"a+");

unlink($rFile);

示例 2:以下代码使用来自于配置文件的输入来决定打开哪个文件,并返回给用户。如果程序以足够的权限运行,且恶意用户能够篡改配置文件,那么他们可以通过程序读取系统中以扩展名 .txt 结尾的任何文件。

$filename = $CONFIG_TXT['sub'] . ".txt";

$handle = fopen($filename,"r");

$amt = fread($handle, filesize($filename));

echo $amt; 

Recommendations

防止 Path Manipulation 的最佳方法是采用一些间接手段:创建一个必须由用户选择的合法值的列表。通过这种方法,就不能直接使用用户提供的输入来指定资源名称。 但在某些情况下,这种方法并不可行,因为这样一份合法资源名的列表过于庞大,维护难度过大。

因此,在这种情况下,程序员通常会采用执行拒绝列表的办法。在输入之前,拒绝列表会有选择地拒绝或避免潜在的危险字符。但是,任何这样一个列表都不可能是完整的,而且将随着时间的推移而过时。更好的方法是创建一个字符列表,允许其中的字符出现在资源名称中,且只接受完全由这些被认可的字符组成的输入文章来源地址https://www.toymoban.com/news/detail-805014.html

到了这里,关于开发安全之:file_get_contents()漏洞利用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全:文件包含漏洞测试(防止 黑客利用此漏洞.)

    文件包含的漏洞是  程序员在开发网站的时候,为了方便自己开发构架,使用了一些包含的函数(比如:php开发语言,include() , include_once() , require_once() 等等 ),而且包含函数中的变量,没有做一些过滤或者限制,使得用户可以 控制传到服务器中的数据,导致文件包含漏洞

    2024年02月08日
    浏览(45)
  • Web安全:SQL注入漏洞测试(防止 黑客利用此漏洞.)

    SQL注入就是 有些 恶意用户在提交查询请求的过程中 将SQL语句插入到请求内容 中,同时程序的本身对用户输入的内容过于相信, 没有对用户插入的SQL语句进行任何的过滤 ,从而 直接被SQL语句直接被服务端执行 ,导致数据库的原有信息泄露,篡改,甚至被删除等风险。 SQL注

    2024年02月13日
    浏览(28)
  • 网络安全--XXE漏洞利用思路

    介绍 XXE 之前,我先来说一下普通的 XML 注入,这个的利用面比较狭窄,如果有的话应该也是逻辑漏洞 如图所示: 既然能插入 XML 代码,那我们肯定不能善罢甘休,我们需要更多,于是出现了 XXE XXE(XML External Entity Injection) 全称为 XML 外部实体注入,从名字就能看出来,这是一

    2024年02月13日
    浏览(32)
  • Web安全 SQL注入漏洞测试.(可以 防止恶意用户利用漏洞)

    SQL注入就是 有些 恶意用户在提交查询请求的过程中 将SQL语句插入到请求内容 中,同时程序的本身对用户输入的内容过于相信, 没有对用户插入的SQL语句进行任何的过滤 ,从而 直接被SQL语句直接被服务端执行 ,导致数据库的原有信息泄露,篡改,甚至被删除等风险。 SQL注

    2023年04月20日
    浏览(35)
  • 中间件安全IIS----文件解析漏洞利用

          IIS服务器主要存在两种解析缺陷:文件夹解析漏洞和分号截断漏洞。下面就来分别具体 了解一下。        在IS5x和6.0下对于录名称为“xasp”中的任何内容,包括“1.jpg”这样的图片文件,都会被当作ASP文件解析。例如“/example.asp/1.jpg”,这本来是一个图片资源,但是

    2024年01月18日
    浏览(36)
  • Web安全——Web安全漏洞与利用上篇(仅供学习)

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

    2024年02月10日
    浏览(31)
  • 网络系统安全——MS15_034漏洞利用与安全加固

    Kali   192.168.124.162 Windows server 2008   192.168.124.169 检查2008服务器的IIS网站是否正常,进入2008服务器,使用ie浏览器访问本机地址 切换到kali,使用命令ping来测试他们的连通性 然后使用使用命令curl测试,测试:curl http://192.168.124.169 -H “Host:192.168.124.169” -H “Range:bytes=0-1844674

    2024年02月09日
    浏览(35)
  • MS12-020漏洞利用-----蓝屏攻击(windows安全)

    靶机系统:windows server 2008 R2      ip:192.168.100.218 攻击机系统:linux-kali                ip:192.168.100.99 首先利用kali的nmap扫描攻击进行端口的扫描,判断是否有可利用的端口; 结果:     可以看到开启了3389端口,远程连接服务,那么便可以尝试蓝屏攻击,这是提前得

    2024年01月16日
    浏览(31)
  • Java安全之SnakeYaml漏洞分析与利用

    SnakeYaml是Java中解析yaml的库,而yaml是一种人类可读的数据序列化语言,通常用于编写配置文件等。 yaml基本语法 : 大小写敏感 使用缩进表示层级关系 缩进只允许使用空格 # 表示注释 支持对象、数组、纯量这3种数据结构 示例 yaml对象: yaml数组: 意思是 companies 属性是一个数

    2024年02月04日
    浏览(29)
  • 白帽子实战之高阶安全挑战:操作系统与安全设备的漏洞利用

    高级安全工具是白帽子必须掌握的重要内容,但这些工具对使用者的基础技能要求较高,初学者可能难以掌握。在实战环境中,经常使用的工具包括IDA、Ghidra、Binwalk、OllyDbg和Peach fuzzer等。熟练掌握这些工具,对于白帽子在网络安全实战中取得成功至关重要。 IDA IDA是一个专业

    2024年02月04日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包