[HNCTF 2022 WEEK2]easy_include 日志包含漏洞

 文件日志包含漏洞-CSDN博客

日志包含漏洞-CSDN博客

https://www.cnblogs.com/GTL-JU/p/16831597.html

日志包含漏洞

日志包含漏洞属于是本地文件包含,同样服务器没有很好的过滤,或者是服务器配置不当导致用户进入了内网,本来常规用户是访问不了这些文件的,但由于发起访问请求的人是服务器本身,也就导致用户任意文件读取。例如:某php文件存在本地文件包含漏洞,但无法上传文件,利用包含漏洞包含Apache(看服务器是Apache还是nginx)日志文件也可以获取WebShell。

当然,需要先开启服务器记录日志功能

当我们请求该服务器页面时,Apache就会在日志文件内记录下我们的操作,并写到access.log文件中。就像这样。

通过访问日志,我们可以得到一些关键信息,如IP地址,错误信息以及客户端的每次请求及服务器响应的相关信息等。

不同的系统存放日志文件地方和文件名会不同,所以访问的路径也会不同

apache一般是/var/log/apache/access.log   

nginx的log在/var/log/nginx/access.log(访问日志)和/var/log/nginx/error.log(错误日志)

在访问URL时,服务器会将它编码,所以我们一般通过抓包注入

 例题:

 [HNCTF 2022 WEEK2]easy_include

最开始我打开环境后,看到它过滤的一些信息之后,就在那儿各种做,各种传参,一点用没有,还是没做出来,后来在网络请求头这儿看见了nginx/1.18.0这个东西,去搜了WP才会做的

第一步,URL:?file=/etc/passwd  判断是否存在日志包含漏洞,访问成功,说明存在这个漏洞

根据提示我们知道是nginx服务器,url:?file=/var/log/nginx/access.log  我们访问日志文件,可以看见回显的都是User-Agent里的信息,那我们抓包,在User-Agent里注入就行了

抓包后,在User-Agent里输入:<?php system('ls');?>(这儿不知道为什么,每条命令都是发送了两次以上才发送成功)

 没有看到信息,接着查看根目录:<?php system('ls /');?>

看到了flag,直接读取它:<?php system('cat /*******')?>   就行了

这儿不知道为什么,每次发送都是发送了两次以上才得到回显,不知道因为什么。

看了很多WP好像还有一种方法,就是在User-Agent里传入一句话木马(例:

<?php @eval($_POST['123']);?>),然后又用POST传参123=system("ls");进行命令执行,因为一直发送不上去,可能是环境问题,还有我感觉这种方法多麻烦了一步,我就没有用这种方法去再写一遍。

笔记

看了很多师傅们的WP,发现他们做日志包含漏洞时,都要传入一句话木马文件,然后再POST传参进行命令执行,但是这一题还没有遇到,可能是因为它的日志里显示了UA的信息,所以可以直接再UA里进行命令执行吧。再多做做题!!!

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值