ctfshow
文章平均质量分 60
ctfshow的所有题目的wp,用于记录自己的学习情况同时给其他学习者提供参考
baozongwi
小白,这里就是我的日记啦,大家有问题,私聊我,尽力解决
展开
-
ctfshow 大赛原题 web689--web695
path这里可以写入文件这里的%26是但是如果直接写的话不能正确的绕过,必须写url形式写马方便。原创 2024-08-01 07:24:50 · 997 阅读 · 0 评论 -
ctfshow SSTI注入 web369--web372
研究了一下发现只有curl可以用,nc\ping\weget都不可以。发现count被禁用 使用length代替。这把request过滤了,只能自己拼字符了。过滤了数字用全角数字代替半角数字。拓展知识,与本题无关。原创 2024-07-25 12:30:42 · 702 阅读 · 0 评论 -
ctfshow web入门 xss web327--web333 存储型和七七八八的
这道题貌似和反射型的xss差不多,直接打就行。原创 2024-07-18 12:22:41 · 1044 阅读 · 0 评论 -
ctfshow web入门 xss web316--web326 反射性xss
先在这个网站注册一个账号那么重新登录之后进入到下图的页面那么进行xss攻击我们怎么操作呢下面写伍个payload,逐一分析,毕竟我也不会。原创 2024-07-18 12:22:47 · 396 阅读 · 0 评论 -
ctfshow web web签到--web14
要让回显有用的东西我们不可能回显几万,靶机都没了,所有挨着试。我想手注的,但是不知道为什么没有回显了只能sqlmap了。本来是想直接命令执行的,发现过滤了就用这个来看目录。SQL注入,我之前是没遇到这种格式的长了新姿势。php伪协议,不知道flag文件所以不能用。可以手注空格绕过,但是我的还是没有回显。显然我们不能用正常的SQL注入了。v1必须为字母v2必须为数字。查看源码原来我们的木马太长了。那么我们就需要用特殊的密码。刚好闭合,管理员身份就过了。我们并不知道密码,这里用。访问F12获得查询语句。原创 2024-06-06 13:36:15 · 586 阅读 · 0 评论 -
ctfshow sqli-labs web532--web540
但是我做这道题的时候是比较萌萌的,我的payload是应该没错的但是一直触发不了。admin登录之后叫我删除cookie怀疑是cookie注入。这个闭合方式,还正常但是他不出结果,加了个恒等。format函数是将特定内容放入{}占位符中。正常注入我以为我句子写错了 ,原来注入不在。还是比较简单的这里我就不手注入了,麻烦。这三个页面我找不到注入点在哪里,麻了。后面发现DUMB为账号密码也可以。发现是UA注入(用报错注入语句)闭合然后恒等不好写了,我就直接。也可以用python。被base64加密了。原创 2024-06-30 14:06:08 · 319 阅读 · 0 评论 -
ctfshow web sql注入 web242--web249
mid和limit都行,我比较喜欢用mid。用这两个替换floor这个向下取整函数。into outfile 的使用。用.user.ini包含。原创 2024-07-03 19:10:21 · 496 阅读 · 1 评论 -
ctfshow web
前面都是在flag之前的返回都一样,而g不一样则可以判断出来flag的第一位在7号位,依次类推测出所有flag。随便传username和password发现没有p参数那我们就把ssrf传在returl。但是我说过题目改了所以我们只能用类似的方法而不能用一样的脚本,暂时打不通欠着。我拿直接的去打了半天没反应,原来是要url再编码一次。除了用户名不能是admin其他的都行。我原先是以为可以覆盖密码结果我想多了。传完之后访问小马rce即可。这道题被改了一点小改动。这道题就是覆盖密码了。原创 2024-06-07 19:36:41 · 465 阅读 · 0 评论 -
ctfshow jwt web入门
jwt令牌由三部分组成,由分割header示例payload示例。原创 2024-06-03 11:02:59 · 521 阅读 · 0 评论 -
ctfshow web其他 web450--web460
所以是能够回调到并且返回true的。代码没有变,但是没有回显flag。用php伪协议外带写入文件。原创 2024-06-23 16:17:26 · 481 阅读 · 0 评论 -
ctfshow web
浏览器内部使用32位带符号的整数,来储存推迟执行的时间。这意味着setTimeout最多只能推迟执行2147483647毫秒(24.8天)超过这个时间会发生溢出。只要让其溢出就会回显flag的内容。原创 2024-06-07 19:36:22 · 668 阅读 · 0 评论 -
ctfshow sql注入 web234--web241
如果说为什么要在insert.php进行注入的话,我不知道你注意前面的注入没有都是在相应的php页面进行的。回来刷新就有flag了,我调了一会笑死了,之前的脚本居然没起到注入的作用然后又在那里慢慢调。这个脚本我写了很久,因为我之前并没有完全理解try,except,现在懂了。api是一个url的接口,所以我们在这里实现注入。这里我们直接闭合username然后就行。过滤之后,我们还有另外两个能够使用的库。看到页面没有注入的地方我们访问api。脚本还是比较简单的我就不解释了。被过滤了,所以我们用。原创 2024-07-03 19:10:42 · 366 阅读 · 0 评论 -
ctfshow sqli-libs web541--web551
服务器端有两个部分:第一部分为 tomcat 为引擎的 jsp 型服务器,第二部分为 apache为引擎的 php 服务器,真正提供 web。这里是一个知识点HPP,也就是HTTP Parameter Pollution,http 参数污染攻击的一个应用。而apache php服务端应该是只处理最后一个参数id,所以我们就可以依靠这个来污染参数。这里有个细节我们为了布尔盲注能够正确判断所以最后只能写0如果写1,就恒真,无法判断。写这个脚本我是写烦了,忘记加or双写,测试字符的时候括号老是对不上麻了麻了。原创 2024-06-30 14:05:45 · 594 阅读 · 0 评论 -
ctfshow web
首先我们要使得传入值md5与key.dat相等直接访问发现可以下载那么我们就使用这个文件绕过了。本来想扫后台的但是我dirsearch突然变的很慢根本扫不出来于是直接盲猜.git泄露。要让i等于token,并且要在短时间内替换文件$receiveFile。这里用一个python脚本达到目的。这里补充一个之前做题遇到过的姿势。那么我们想在的目的就是访问。很明显web.zip有东西。这里过滤了所有大小写除了。先试一下万能密码没什么用。扫后台没有发现有用的文件。查看源码发现个md5。原创 2024-06-06 13:35:30 · 416 阅读 · 1 评论 -
ctfshow sqli-libs web561--web568
sort=-1 and if(1,sleep(0.4),3)–+,但是我用手机秒表记的是5.5秒就算有误差也是远大于了差不多是十倍的样子,我们就可以这样子来写脚本了。antsowrds也链接上了,但是没找到flag。说实话这道题又学到了就是报错的不能完全显现问题。闭合符号换了,慢慢试或者fuzz都能出。于是想到了数据库操作,欧克了。为了搞懂这个刷了两个靶机。联合注入不行直接换报错。原创 2024-07-01 21:20:37 · 408 阅读 · 1 评论 -
ctfshow web 其他 web432--web449
看到了另外一种拼接字符的方法我觉得很神,但是由于太长不能正常传入。删除了很多,我们用reload重新下回来。python里面可以用分号执行多条语句。我没有写多因为payload是一样的打。原创 2024-06-22 16:56:12 · 960 阅读 · 1 评论 -
ctfshow phpCVE web311&web313
这个漏洞工具的使用必须要有go环境哦。来制造任意文件漏洞,执行任意代码。用到的cgi模式下的参数。然后可以使用-d来指定。这道题是一个版本漏洞。原创 2024-06-01 10:23:07 · 343 阅读 · 0 评论 -
ctfshow web入门 sqli-libs web552--web560
嗯原理我就不讲了,还是有点复杂后面有时间讲讲。警告是说第一个参数应该是一个数而不是布尔。的转义作用抵消了然后正常注入即可。这东西和前面的一模一样感觉在凑数。总而言之就是用汉字把。原创 2024-07-01 21:02:20 · 206 阅读 · 0 评论 -
ctfshow web入门 nodejs web338--web344
Function环境下没有require函数,不能获得child_process模块,我们可以通过使用process.mainModule.constructor._load来代替require。然后我们利用这个来使用copy来实现属性的污染把,secret的ctfshow属性变为36dboy。和后面的 var __tmp2 不能删,是为了闭合代码。由于是污染题,所以我靶机是开了差不多十来次,终于是拿到了。源码和340没有变,但是没有api的函数触发了。污染之后没有反应,随便访问一个页面,反弹成功。原创 2024-07-06 17:55:07 · 718 阅读 · 0 评论 -
ctfshow web入门 Java
好东西专打全部题都是struts2框架漏洞使用方法在md里面。原创 2024-06-04 15:18:18 · 583 阅读 · 0 评论 -
ctfshow web入门 php反序列化 web267--web270
查看源代码发现这三个页面。然后发现登录页面直接。原创 2024-05-10 17:17:12 · 413 阅读 · 3 评论 -
ctfshow web入门 sqli-labs web517--web524
然后发现这几个表里面没有flag,我们重新倒回去爆库名,肯定是库错了,因为我偷工减料了。盲猜是一个md5闭合我没有跑fuzz,正常做法应该是跑个fuzz。不会的去我主页学,hhh。单引号被过滤了好像是。所以我是自己慢慢试的。闭合换了并且不是盲注。原创 2024-06-28 15:35:10 · 374 阅读 · 0 评论 -
ctfshow web入门 phpCVE web312&&web314
其imap_open函数会调用rsh来连接远程shell,而debian/ubuntu中默认使用ssh来代替rsh的功能(也就是说,在debian系列系统中,执行rsh命令实际执行的是ssh命令)。因为ssh命令中可以通过设置-oProxyCommand=来调用第三方命令,攻击者通过注入注入这个参数,最终将导致命令执行漏洞。又因为ssh命令中可以通过设置oProxyCommand来调用第三方命令,所以攻击者通过注入这个参数,最终将导致命令执行漏洞。看wp说的是Debian的系统,我把眼睛看花也没找到。原创 2024-05-14 08:31:44 · 278 阅读 · 0 评论 -
ctfshow web入门 ssrf web351--web360
我测试了一下会显示504,我以为是环境的问题就没有整了,结果问了大菜鸡师傅,没问题,直接访问shell.php就行,这个故事告诉我们还是要多尝试。127.0.0.0/8是一个环回地址网段,从127.0.0.1 ~ 127.255.255.254都表示localhost。这道题我先是直接想访问flag.php,后来回显说必须是本地,于是payload。ip地址还可以通过表示成其他进制的形式访问,IP地址二进制、十进制、十六进制互换。然后访问shell.php进行rce即可。用服务器DNS重定向。原创 2024-05-14 08:32:17 · 368 阅读 · 0 评论 -
ctfshow web入门 中期测评 web486--web491
由于我们写马所以SQL语句执行不了,最后存储的数据为空,user也就为0,也就解释了前面的东西。自动时间盲注,然后找sleep我觉得很强,不用自己找payload写脚本。非预期,这里就是有一个url的观察,发现参数action。就是接到参数然后写在文件里面只不过是MD5 的文件名。我们猜测flag在根目录下面,写文件然后访问。然后看到源码里面另外两个文件没有 依次访问。sql语句正常了,还是可以写index。但是我们用sqlmap是不影响。同样的目录穿越方法查看源码。这里我们之前是做过的,原创 2024-06-01 10:22:22 · 193 阅读 · 0 评论 -
ctfshow web入门 web306--web310源码审计
链接:https://juejin.cn/post/7083293190022758407。访问1.php再rce就行了,但是不知道为啥我今天做不出来,弄了好一会了。商业转载请联系作者获得授权,非商业转载请注明出处。说的源码没变,这里我们写个EXP看配置文件。这些题都要在index.php发包才可以。我是终于找到了在一堆里面弄。这和之前的完全不一样了。作者:OceanSec。原创 2024-05-27 17:42:35 · 613 阅读 · 0 评论 -
ctfshow web入门 其他 web396--web412
这里我们要调用cafe类里面的add方法,而检验完IP之后刚好会使用call_user_func进行函数的调用。这里的函数写的是将//和ctfshow进行一个拼接,那我们就可以使用一个换行进行绕过。这里说明了host必须是正常域名,我们就不能写命令了,只能用;还可以弹回显,直接不就用哦本地了,但是没影响直接打。对host过滤了分号,没影响。里面讲了危险函数的绕过。把http改成1就行。原创 2024-05-21 13:50:57 · 657 阅读 · 0 评论 -
ctfshow web入门 SSTI注入 web361--web368
过滤了中括号 下划线 单引号 双引号 globals、getitem args。说实话这里对py不太好的朋友有点不友好,因为payload都是py的。这里用popen方法来执行命令。上题一样的payload可以用。这里是把引号过滤了我们可以用。然后使用flask过滤器。上题一样的payload。hint:考点就是题目。原创 2024-05-15 09:38:27 · 401 阅读 · 0 评论 -
ctfshow web入门 黑盒测试
扫后台但是其实dirsearch自带的字典是没有的我们可以添加一下。访问clear.php然后发现并没有删除,原来是需要传参才可以删除。我是直接填的账号密码,至于账号为什么是admin我猜的。这些文件挨个试发现啥也没,最后仔细对比发现其实都是。进入页面发现有标题搜索了随便搞一个拿到注入点。这里有个菜鸟往事点进来就可以知道注入点。密码前2位是小写字母,后三位是数字。但是还有一种方法是万能密码。访问debug发现权限不足。但是没啥用哇,查看源代码。这里文章看的我好有感触。可以和上题一样直接秒了。原创 2024-05-20 20:44:47 · 840 阅读 · 0 评论 -
ctfshow web入门 XXE漏洞
登录成功但是没有回显,抓包。原创 2024-05-20 12:51:22 · 171 阅读 · 0 评论 -
ctfshow web入门 嵌入式 bash cpp pwn
方便我们本地下面这个代码是bash脚本$IFS$OIFS$IFS我们靠传入的角标为0 1 的值构造命令。原创 2024-05-23 13:26:37 · 478 阅读 · 0 评论 -
ctfshow web入门 php反序列化 web275--web278(无web276)
后面的内容,但是作者这里用了两个。这道题和序列化一点关系都没有。是文件内容,但是外面的这个。python序列化,EXP。这里其实就可以理解为我传。就是输入流得到的内容就是。来混淆,filter的。原创 2024-05-10 17:18:32 · 489 阅读 · 0 评论 -
ctfshow web入门 php序列化 web260--web266
在前面加上 ‘|’, 这样的话 session 反序列化的时候 php handler 会默认把 ‘|’ 前面的内容当做 key, 不会解析, ‘|’ 后面的才是真正应该反序列化的 value。注意heckbar是不能直接传值的,必须传键值对,所以我们用bp发包。注意数清楚fuck的个数,我就是少了一个。正则看序列化之后的ctfshow有没有。构造password=token即可。这里有两种写法,赋值的时候注意一定要。类名不能是ctfshow,然后。我们在POST传的值就是$cs。是拼接,然后就有马了。原创 2024-05-06 11:34:06 · 295 阅读 · 0 评论 -
ctfshow web入门 爆破 web25
这里要使用一个工具php_mt_seed来进行种子的爆破再根据种子来获得flag。本来想发布的但是这个题太前面了,给你们(也给我)讲一下代码,其实有用的就是。随机数,升级这一步我不知道,整了很久查了很久,这下子你们可以乘凉了。工具安装简单说一下就是先下载解压之后拖到kali里面,再升级。make升级一下然后就可以了,我们就可以直接使用。再利用EXP获得两个根据种子生成的随机数。先我们传一个r=0获得随机数。然后我们利用工具爆破种子。原创 2024-05-13 13:11:10 · 140 阅读 · 0 评论 -
ctfshow web入门 nodejs web334--web337
spawnSync()会同步创建一个子进程执行我们传入的命令,并且返回一个对象.一个文件类似于index.php 还有一个就是登录密码登录成功就有flag。查看源代码看到了eval可以进行rce只不过和PHP不同的是函数。有个文件下载之后改后缀为zip加压就可以得到两个文件。原创 2024-07-05 19:45:31 · 400 阅读 · 0 评论 -
ctfshow web入门 sqli-libs web525--web531
服了这括号太多了,我眼睛都要看花了,才给写好(为了自己熟练一点非要自己重新写一遍,麻了)修改了传参模式了,记得把submit给删了不然报错。报错注入,有些写的是布尔盲注我是不知道怎么测出来的。思路,随便填的一个联合注入结果说我写错了。然后你就会发现找不到,反正我是找了半天。一看,然后一直改发现就是报错,于是把。页面确实没有回显但是也没变化哇。必须这么闭合才会触发布尔盲注。后面发现时间盲注也可以。原创 2024-06-29 09:36:38 · 254 阅读 · 0 评论 -
ctfshow web入门 php反序列化 web254--web259
SOAP 是一种基于 XML 的通信协议,通常用于在分布式环境中进行 Web 服务之间的通信。SoapClient 类提供了与 SOAP 服务进行交互的功能,可以用来调用远程 SOAP 服务的方法。这里的code可以随便改都可以做出来,isVip为什么写成false是因为直接跳过VIP那里,直接执行__construct。上一题的代码还是可以用的但是我们要用+(%2b)来绕过正则。只要传入的值与其类中的值相等即为true就有flag。这两个都可以,个人觉得上面的更加通俗易懂。t应该就能拿到flag了。原创 2024-05-05 14:52:13 · 455 阅读 · 0 评论 -
ctfshow web入门 php特性 web89--web107
for循环里面的意思是取随机数1到36之间一个数,1到37之间一个数,1到38一个数,直到1到877,然后把每次拿到的随机数追加到allow数组里面。//如果GET传参flag的值=flag则将cookie的值代替flag中的值。//如果使用GET传参,则使用POST传参来代替。//如果GET传参HTTP_FLAG的值为flag则输出$flag。=b,但是md5编码之后又要相等。原创 2024-04-04 17:59:26 · 1735 阅读 · 1 评论 -
ctfshow web入门 命令执行 web53--web77
可以通过FFI来实现调用system函数,从而将flag直接写入一个新建的文本文件中,然后直接访问这个文本文件即可。我直接把这个编码结果放在这里吧,因为我是因为编码不对狠狠的别折磨了,大家知道原理就行。弄了半天发现并不是很对劲,原来我发现他会先回显我输入的命令再进行命令的回显。,即外部函数接口,是指在一种语言里调用另一种语言代码的技术。PHP的FFI扩展就是一个让你在PHP里调用C代码的技术。我的理解就是把读到的东西写在一个文件里面再去访问。这道题很逆天,查看目录的命令什么的都别过滤了。原创 2024-04-03 09:50:42 · 1191 阅读 · 1 评论 -
ctfshow web入门 web87--web88&&web116--web117
content是写入内容,要进行base64编码 ,而base解码时,是4个一组,flag.php(要写入的文件),写入的内容<?整个函数调用的作用是将解码后的 $file 作为目标文件路径,然后将前面定义的终止执行提示语句与 $content 的内容拼接起来,一起写入到目标文件中。两次URL编码(浏览器(hackbar)一次,题目绕过一次)为。用php伪协议绕过但是常见的编码都被过滤这里有一种新的编码。php伪协议进行绕过(但是编码的时候必须绕过=和+)(工具用的bp的编码器,这个编码器我找了好久好久)原创 2024-04-04 11:55:15 · 777 阅读 · 1 评论