代码审计的艺术系列—第八篇
来源:互联网 发布:新菜鸟网络俱乐部 编辑:程序博客网 时间:2024/06/06 03:02
0x00前言:
作者:HackBraid,乌云核心白帽子。接上篇代码审计的艺术系列-第七篇,提到了一个上传漏洞搜索和挖掘的简单案例。 文件上传漏洞是一种非常常见的漏洞类型,也是直接获取服务器权限最直接的方式,所以快速发掘一套源码文件上传漏洞进行getshell是这篇要讨论的,主要分为危险函数、上传技巧和条件竞争漏洞三方面展开。0x01危险函数:
move_uploaded_file()getimagesize()copy()0x02文件上传漏洞的脑图:
0x03 上传技巧 :
PHP%00截断截断条件:①PHP版本小于5.3.4,详情请查看[CVE-2006-7243](https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2006-7243)
②magic_quotes_gpc=Off,否则%00这种空字符会被转义为\0
搭建好满足上面两个条件的测试环境后,可以用下面的漏洞代码来测试:成功截断上传获取webshell文件头Content-type绕过通过将上传文件里面加上"GIF89a"后进行上传在一定环境下可以绕过图片文件检测后getshell,原因是使用了类似getimagesize()这种函数对上传文件是否是图片进行判断,我们可以用如下代码进行测试:测试发现加上GIF89a头后该函数会判断为x.php为图片文件
0x04 条件竞争漏洞 :
缺陷代码:意思是利用copy函数将上传的图片image.jpg复制到$path里,然后删除目录下非jpg的文件,所以正常的攻击流程:上传图片image.jpg-->利用copy函数生成shell.php-->shell.php被删。shell被删就鸡肋了~那么换个Hacker的思路:上传头像-->生成临时文件(tmp.php)-->不断请求tmp.php在上层目录生成shell.php文件-->删除当前目录下tmp.php等非jpg文件,但留下了上层目录下的shell.php文件-->成功!
所以image.jpg的代码如下:用burp进行测试,一个执行缺陷代码不断生成tmp.php如下:一个不断访问tmp.php从而可以在上级目录下生成shell.php如下:爆破一会儿就发现在主目录下写下shell.php了~本篇的内容,我们就介绍到这里,下一篇欢迎持续关注。
原创文章,转载请注明: 转载自安兔|anntoo.com 互联网安全新媒体平台
本文链接地址: 代码审计的艺术系列-第八篇
0 0
- 代码审计的艺术系列—第八篇
- 代码审计的艺术系列—第二篇
- 代码审计的艺术系列—第三篇
- 代码审计的艺术系列—第四篇
- 代码审计的艺术系列—第五篇
- 代码审计的艺术系列—第六篇
- 代码审计的艺术系列—第七篇
- 代码审计的艺术系列—第九篇
- 代码审计的艺术系列—第一篇
- 代码审计的思路
- php代码审计相关的
- 代码 框架学习系列 mybatis 第八篇 mybatis开发dao的方式
- 【数据库编程标准规范系列】之第八章:代码的注释
- 代码审计
- 写代码的艺术
- 修改代码的艺术
- 代码优化的艺术
- 代码优化的艺术
- 【POJ 1061】青蛙的约会
- 数据库系统表
- 在wordpress中使用 markdown:wp-markdown插件的使用方法
- LIS-最长递增子序列
- Android中的自定义Adapter(继承自BaseAdapter)——与系统Adapter的调用方法一致——含ViewHolder显示效率的优化
- 代码审计的艺术系列—第八篇
- 安装grid时,task resolv.conf integrity failed
- 【杭电 2037】今年暑假不AC
- [LeetCode 107]Binary Tree Level Order Traversal II(递归法)
- Java-继承与构造函数
- eclipse提交项目到github
- 《css权威指南》——笔记3(结构与层叠)
- LA 5135 Mining Your Own Business(点双连通分量+贪心)
- 代码审计的艺术系列—第九篇