PHP审计初试XSS和文件包含

0x00Preface[前言/简介]

最近看到各位表哥也不挖洞了,在学代码审计。身为菜鸡的我,看到各位表哥那么努力突然自卑了,想着表哥技术那么强还那么努力(努力脱发),我怎么可以划水。作为新时代青年,怎么让表哥们甩我二十四条街。从未学过PHP的我从此踏上了一条不归路。从开始学习基础到看完各种书籍还是一脸懵逼,期间多次请教各位表哥,表哥们跟我说有手就行。作为一个倔强的弟弟,这个委屈怎么可以忍,喊着泪咬着牙想着一定要让表哥们看得起。说干就干,本次文章审计的是74cms,手工是不可能手工的,只能用工具跑一跑这样,使用到到代码审计工具为:FortifySCA。本篇做一个笔记记录及思考代码审计思路。

0x01chapter1XSS审计

这里的代码的意思是:POST一个参数content1,然后将content1传递到htmlData参数。我们都知道,只要存在get_magic_quotes_gpc、stripslashes、htmlspecialchars参数,一般都是过滤参数,但是这里有一个坑在于:在传递参数的时候,输出htmlData时没有进行过滤,所以导致存在XSS存储。那么我们来复现一下,我们先用平常基本的复现方法尝试一下:发现使用XSS的时候是无法弹框的,为什么呢?原因在于htmlspecialchars参数,打开PHP文档查看htmlspecialchars参数的意思:然后我们抓包就发现,已经被htmlspecialchars参数过滤掉了那我们该如何进行绕过呢?我们再看回代码,发现代码里其实是两个输出的,返回html是这样的。那么我们是否可以换个思路去尝试。当我们知道其实是两个输出点,刚才是直接payload进去的时候被过滤了,那么我们是不是可以尝试抓包后再进行构造payload。发现嵌入进去,XSS成功。

0x02chapter2文件包含漏洞

这里的代码意思是:对crons参数里的filename进行一个判断,如果不存在就提示不存在,如果存在就执行成功。漏洞在于:require_once参数,对参数进行了执行当发现require_once时,我们就可以进行反推,查看这个参数是否是可控的。发现只是对其进行判断是否存在,并没有做限制。找到参数,构造payload:最后点击执行,代码就会执行:Nice,这辈子都不可能手工代码审计了。

0x04other其他

如您有任何问题、建议、需求请后台留言NOVASEC


转载请注明:http://www.aierlanlan.com/grrz/826.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了