自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(157)
  • 收藏
  • 关注

原创 变量覆盖漏洞 [BJDCTF2020]Mark loves cat 1

打开题目我们拿dirsearch扫描一下看看扫描得到看见有git字眼,那我们就访问用githack去扒一下源代码看看可以看到确实有flag.php结合index.php存在但是当我去翻源代码的时候却没有翻到去网上找到了这道题目的源代码我们用seay代码审计一下看看可能存在哪些漏洞可以看到网页的源代码双$$符号可能存在变量覆盖漏洞现在我们来逐一看看源代码分析语句$$x = $y;首先,包含了一个flag.php文件,将dog值和cat值分别赋给yds和is,字符串。

2023-12-20 11:15:14 864

原创 preg_match详解(反向引用和捕获组)

在讲preg_match函数之前,我们先了解一下什么是php可变变量。

2024-04-29 17:51:13 982

原创 2021长城杯(部分复现)

答案:3fece1e93be4f422c8446b77b6863eb6a39f19d8fa71ff0250aac10f8bdde73a。

2024-04-26 22:36:27 981

原创 XYCTF 部分wp及学习记录

根据题目提示我们知道应该是要上传两张md5值相同的图片把保存下来的图片上传一下得到flag。

2024-04-17 19:42:02 2213 2

原创 基本get,post传参 [LitCTF 2023]Follow me and hack me

直接在url上传参?然后bp抓包post传参即可。

2024-04-08 20:32:55 109

原创 jwt认证 [陇剑杯 2021]jwt(问1)

题目如下用wireshark打开流量包筛选post请求注意到第30行追踪http流发现有很奇怪的token我们知道,Header会被Base64Url编码为JWT的第一部分。所以认证为jwt认证对jwt的token解密得到。

2024-04-08 20:23:06 132

原创 MD5绕过 BJDCTF 2020]easy_md5

打开题目在首页随便输,抓包看到了hint此时如果我们输入fiffdyop如下实例其实就类似构造了一个新语句,如下r,��bor后面的句子第一个字母是非0打头的数字符,都能构成永真的一个句子我们输入ffifdyop进入到下一个界面查看源代码得到提示这就是md5弱比较绕过了简单的数组绕过即可?进入到下一个页面md5强比较绕过而已,只不过是用post传参用两个md5值相同的字符串即可简单的数组绕过即可得到flag。

2024-04-07 21:41:53 258

原创 [网鼎杯 2020 朱雀组]Nmap1

打开题目在源代码中看到了提示先随便输入127.0.0.1那我们试试输入可以看到 | 被转义符号\所转义那我们输入 127.0.0.1 /| ls得到三条反斜线我们猜测,我们输入的东西是被escapeshellarg和escapeshellcmd处理过后的结果我们输入的东西必须绕过这两个函数。

2024-04-01 20:44:04 894

原创 反序列化&动态调用 [NPUCTF2020]ReadlezPHP1

在源代码上看到提示访问一下看看代码审计一下和执行漏洞:echo $b($a);在__destruct()方法里面有 echo $b($a);这个是php的特性,php可以通过这种方法动态调用方法我们可以利用这个特性弄一个后门代码如下成功蚁剑连接一下但是进去却什么都没有那我们修改代码,改去访问phpinfo成功访问。

2024-03-28 20:38:17 935

原创 Unicode转码 [ASIS 2019]Unicorn shop1

打开题目我们买最贵的试试看,结果提示只能输入一个字符抓包分析一下看看从中可以发现源代码是如何处理price的使用的是但是我们查看页面源代码,发现页面的编码是utf-8编码所以,前端html使用的是utf-8,后端python处理使用的是unicode,编码不一致造成了转码问题我们直接搜索一万的数值用Unicode表示是什么我们任意选择一个大于1337的数字就行这里我们选择的是找到它的utf-8编码我们把0x替换成%,上传即可或者直接输入汉字,万或者亿还可以直接把这个字符复制过去。

2024-03-20 21:43:29 441

原创 flask之ssti [WesternCTF2018]shrine1

打开题目。

2024-03-18 15:58:29 970

原创 xff伪造 [MRCTF2020]PYWebsite1

看源代码验证通过会访问/flag.php这个页面。那就bp抓包,伪造xff头。

2024-03-15 09:02:56 510

原创 PHP<=7.4.21 Development Server源码泄露漏洞 例题

打开题目dirsearch扫描发现存在shell.php。

2024-03-15 08:48:43 659

原创 php反序列化字符逃逸

序列化是将变量或对象转换成字符串的过程,用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构。“序列化”是一种类似于这样的结构:s:3:"ctf";对象类型:名称长度:对象名称:对象个数:{属性类型:属性长度:属性名称;内容类型:内容长度:内容;;是用来分隔属性的反序列化是将字符串转换成变量或对象的过程,“反序列”是把序列化成的用来在内存中重新创建一个实际的对象。这个机制被用来“持久化”对象(这里参考大佬的文章在这里说明一下,引用的文章在末尾会提到)

2024-03-04 19:32:03 1039

原创 反序列化逃逸&变量覆盖 [安洵杯 2019]easy_serialize_php1

extract() 函数从数组中将变量导入到当前的符号表。该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。第二个参数type用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。该函数返回成功导入到符号表中的变量数目。

2024-02-29 11:18:11 1212

原创 脚本匹配get,post [强网杯 2019]高明的黑客1

打开题目访问www.tgr.gz,下载源码解压以后发现里面有很多文件,只有一个是index.html,其余都是php文件。并且尝试访问也有看大佬的wp是说,应该找存在形如以下的结构,传入payload找flag。步骤大致是字符匹配$_GET[$_POST[,尝试往匹配到的参数名传递echo,看看哪些参数可以接收到参数并打印出来。这里依旧是用大佬的脚本跑一下最终找到了利用文件: xk0SzyKwfzw.php找到了利用的参数:Efa5BVG命令执行, payload:得到flag。

2024-02-29 11:12:24 382

原创 进制转换&md5绕过 [安洵杯 2019]easy_web1

打开题目在查看url的时候得到了一串类似编码的东西,源码那里也是一堆base64,但是转换成图片就是网页上我们看见的那个表情包?我们可以先试把前面的img那串解码了解码的时候发现长度不够,那我们就补充一个=上去解码得到再次解码base64解码两次后,得到3535352e706e67看大佬的wp说是像16进制,那我们16进制转换一下转换得到那我们就可以猜测img参数的作用就是将对象包含并进行转16进制再base64编码后输出,试一试包含index.php得到上传上去,得到。

2024-02-28 20:14:44 1131

原创 Twing模板注入 [BJDCTF2020]Cookie is so stable1

打开题目我们先抓包分析一下可以输入{{7*7}}处发包试一下可以看到在cookie处存在ssti模板注入输入{{7*‘7’}},返回49表示是 Twig 模块输入{{7*‘7’}},返回7777777表示是模块在这里可以看出是Twing模块我们直接用固定payload就可以得到flag。

2024-02-28 16:11:22 436

原创 [CISCN 2019华东南]Web11

打开题目看到xff就应该想到抓包看回显也是127.0.0.1,我们盲猜是不是ssti模板注入输入{{7*7}}显示49可以看的出来flag在根目录下输入{system(‘cat /flag’)}得到flag。

2024-02-27 21:45:58 591

原创 命令执行 [UUCTF 2022 新生赛]ez_rce

打开题目得到题目源码代码审计一下get传入的code参数如果存在的话就赋值给code参数,如果参数里面没有/sys,pas等符号就输出一句话且执行code参数里面的命令如果有的话,就退出脚本运行并输出一句话,如果code参数的值不存在就输出另外一句话。解题思路我们可以先尝试一下,这里是php语句,所以我们要在语句最后加上;?这里用printf也是一样的结果得到那我们去查看一下根目录?发现了flag构造payload:得到flag或者我们直接用var_dump命令也是一样的。

2024-02-27 20:45:49 1050

原创 绝对路径拼接漏洞 [NISACTF 2022]babyupload

打开题目最开始以为是文件上传的漏洞结果发现无论我们上传什么文件都会显示bad filename去网上看了大佬的wp知道我们直接去看源代码得到提示 /source那我们去访问一下这个路径看看得到一个下载文件用记事本打开得到源代码如下代码审计一下后端就行了", 403try:", (id,))open看大佬的解释是说:上传的文件不能有后缀名,上传后生成一个uuid,并将uuid和文件名存入数据库中,并返回文件的uuid。

2024-02-26 23:06:13 818

原创 %00截断 [GKCTF 2020]cve版签到

打开题目F12之后在Headers中发现hint两者结合利用零字符截断使get_headers()请求到本地127.0.0.结合链接构造?必须以123结尾?得到flag。

2024-02-26 21:31:21 667

原创 php伪协议 [SWPUCTF 2022 新生赛]ez_ez_php(revenge)

打开题目题目源代码如下代码审计一下首先检查是否存在名为file的 GET 参数如果存在file参数,就用substr函数检查该参数值的前三个字符是否为 "php"includefile很明显。

2024-02-26 20:48:21 754

原创 pop链构造 [NISACTF 2022]babyserialize

打开题目题目源代码如下代码审计一下//定义了一个名为NISA的类//检查$this->fun是否等于 "show_me_flag",如果是,则调用hint()函数hint();//当对象的方法不存在时,__call()$from表示调用的方法名,$val是一个数组,包含调用方法时传递的参数//将对象的属性$this->fun设置为传递给方法的第一个参数的值,即$val[0]return " ";//使用echo语句输出对象的属性。

2024-02-26 20:33:45 1048

原创 关于js [GDOUCTF 2023]hate eat snake

speed,在第237行发现自增代码。发现snake.js文件。重玩游戏,等待60s即可。第7行定义了游戏的速度。注释或者删除自增代码。

2024-02-25 21:21:48 381

原创 vim恢复.swp [BJDCTF2020]Cookie is so stable1

打开题目扫描目录得到关于 .swp 文件.swp 文件一般是 vim在编辑文件时产生的,当用 vim 编辑器编辑文件时就会产生,正常退出时 .swp 文件被删除,但是如果直接叉掉(非正常退出),那么 .swp 文件就会被保留我们把文件拖去kali用 命令 vim -r用命令代码如下只需要 POST 传参 password 等于字符串 “Give_Me_Your_Flag” 的base64 加密后的值即可。然后就能得到一串输出且能执行系统命令得到用hackbar传参一下得到flag。

2024-02-25 21:05:49 490

原创 8 buuctf解题

这里什么都没有,但是题目又是音符,所以肯定有什么藏起来了。数据,利用脚本将这些数据以二进制流形式写入文件。发现文件头错误,修改文件头:52 61 72。低头看一下键盘,将描述中提到的字母连接起来。运行一下下载的程序,会出现一个1.txt。尝试爆破,先尝试掩码爆破四位数字。下载附件,得到一个.txt文件。,解压得到图片,flag在图片。进入选项,打开,勾选隐藏文字。根据提示,查看ntfs流。即可看到附加的ntfs流。打开有一个docx文件。没有发现东西,修改后缀。保存即可得到正常的图片。

2024-02-24 15:33:16 345

原创 5 buuctf解题

发现当username不为空,并且admin等于6d0bc1和password的md5值的前六位的值相同就登陆。shtml是一种用于SSI技术的文件——Server Side Include--SSI。SSI是为WEB服务器提供的一套命令,这些命令只要直接嵌入到HTML文档的注释内容之中即可。扫描一下后台,最后用御剑扫描到了index.php.swp。然后利用shtml的命令执行,可控参数是username。输入账户名admin和密码进入系统,发现在响应头中有。用hackbar传一下参数。

2024-02-24 14:02:13 614

原创 4 buuctf解题

param=flag.txt 的时候,返回的 md5 就是 md5('xxx' + 'flag.txt' + 'scan') ,在 python 里面上述表达式就相当于 md5(xxxflag.txtscan) ,这就很有意思了。param=flag.txtread ,拿到的 md5 就是 md5('xxx' + 'flag.txtread' + 'scan') ,等价于 md5('xxxflag.txtreadscan') ,这就达到了目标。试着访问了一下 /geneSign?页面英文提示:阻止外星人!

2024-02-24 00:03:56 965

原创 xff注入 [CISCN2019 华东南赛区]Web111

Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}. 全部的PHP条件表达式和函数都可以在if内使用,如*||*,3.Smarty的{if}条件判断和PHP的if 非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}. 也可以使用{else} 和 {elseif}. 全部的PHP条件表达式和函数都可以在if内使用,如。在Smarty 3.1,{php}仅在SmartyBC中可用。

2024-02-23 23:22:26 581

原创 反序列化 [NPUCTF2020]ReadlezPHP1

现存在反序列化语句:@$ppp = unserialize($_GET["data"]);和执行漏洞:echo $b($a);发现成功了,于是可以用蚁剑连接,但是这个题目用蚁剑连接以后是空白一片,于是考虑可能是在phpinfo()里面。思路很简单,只要把$b赋值为方法名字,吧$a赋值成调用的参数就行了。发现在__destruct()方法里面有 echo $b($a);这个是php的特性,php可以通过这种方法动态调用方法。打开源代码发现了个./time.php?将得到的payload上传。

2024-02-23 23:16:20 616

原创 命令执行 [网鼎杯 2020 朱雀组]Nmap1

可以得到回显结果,猜测是命令执行,尝试使用。输入127.0.0.1。查看写入的文件,即访问。在根目录找到了flag。尝试修改文件名后缀为。

2024-02-23 23:10:19 638

原创 30题ctf总结

命令执行 [WUSTCTF2020]朴实无华1-CSDN博客命令执行 [强网杯 2019]高明的黑客1-CSDN博客cookie伪造 [BSidesCF 2019]Kookie1-CSDN博客 sql注入 [极客大挑战 2019]FinalSQL1-CSDN博客 模板注入 [BJDCTF2020]Cookie is so stable1-CSDN博客 命令绕过 [安洵杯 2019]easy_web1-CSDN博客反序列化字符串逃逸 [安洵杯 2019]easy_serialize_php1-CSDN博客XF

2024-02-23 22:50:28 325

原创 Unicode转换 [ASIS 2019]Unicorn shop1

点击进去之后是一个购买独角兽的界面,有四种类型的独角兽,前三种的价格比较便宜,最后的独角兽价格比较贵。告诉了我们只能使用一个字符,一个字符能够购买的就只有前三只独角兽,虽然我也没有购买成功hhh。所以猜测只要购买了第四只独角兽,就能获取flag,于是我们需要找到一个字符比1337大的数字。我们先尝试购买前三种独角兽,输入id,然后price输入9。回到购买界面,我们输入其他的价格,发现输入10的时候有提示。但是很多的网站都是utf-8编码,为什么会说这里很重要?只允许输入一个字符,题目叫。

2024-02-23 22:49:54 315

原创 模板注入 [WesternCTF2018]shrine1

发现注册了一个名为FLAG的config,这里可能有flag,通过url_for()与globals()函数,绕过黑名单。输入shrine/{{7*7}}验证成功。存在flask-jinja2模板注入,发现了current_app()函数。查看这个里面的config。

2024-02-23 22:31:33 363

原创 XFF伪造 [MRCTF2020]PYWebsite1

购买者的ip已经被记录,本地可以看到flag,那么使用xff或者client-ip伪造一下ip试试。加一个X-Forwarded-For头。看到一个./flag.php。

2024-02-23 22:25:01 655

原创 反序列化字符串逃逸 [安洵杯 2019]easy_serialize_php1

至于为什么post要传_SESSION[flag]=123而不是$_SESSION[flag]=123,是因为_SESSION是变量名,如果传$_SESSION,那么就会失效。实现了读取flag的,目的。当以get方法传入img_path的情况下,$_SESSION['img']为传入的img_path进行base64加密和sha1加密。flag和php是敏感字符,在使用的时候被过滤掉了,但序列化记录的字符串长度没有过滤掉,所以在序列化的时候。function的value是由$_GET['f']传进来的。

2024-02-23 22:20:58 505

原创 命令绕过 [安洵杯 2019]easy_web1

\\\,先经过php的解析成\\,再经过正则表达式的解析成\,但是前面又多了一个\\,经过php的解析成\,|这个字符在正则中是保留字符,所以可以转义,再经过正则的解析时\会与后面的|一起解析成|,问题就出现在这一块,整个来看,先经过php的解析成|\|\\|,再经过正则的解析成||\|,所以最后匹配的是|\而不是\,所以我们可以用反斜杠绕过。img=TmprMlJUWTBOalUzT0RKRk56QTJPRGN3&cmd=打开题目在URL处看到。拿去base64解码。再hex解码一次得到。

2024-02-23 22:06:15 1111

原创 命令执行 [强网杯 2019]高明的黑客1

可以用 phpstudy 搭建 web 环境,将这些文件放在 www 根目录一个文件夹,遍历访问。这些文件都是 getshell 文件。能把传入的变量执行系统命令。所以脚本需要遍历这些php文件,然后判断所有的参数是否可以执行。最终找到了利用文件: xk0SzyKwfzw.php。根据提示下载网站文件,发现为很多PHP文件。找到了利用的参数:Efa5BVG。

2024-02-23 21:52:29 301

原创 模板注入 [BJDCTF2020]Cookie is so stable1

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}//查看flag。{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}//查看flag。输入{{7*‘7’}},返回49表示是 Twig 模块。输入{{7*‘7’}},返回7777777表示是。

2024-02-23 21:46:22 343

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除