- 博客(101)
- 收藏
- 关注
原创 ctfshow web(不定期更新)
php://input 可以访问请求的原始数据,配合文件包含漏洞可以将post请求体中的内容当做文件内容执行,enctype=multipart/form-data"时,php://input将会无效。MD5弱等于绕过:有些字符md5后的值为0e开头,会被当做科学计数法,也就是0.所以当找到2个字符md5后的值都为0e开头时即可绕过。绕过方法:如果是以数字开头的字符串,使用is_numeric的时候会自动去掉后面的字符,将其前面的数字取出来判断。web3的升级,过滤了php伪协议,使用日志注入。
2022-09-23 17:01:09
2928
原创 [GYCTF2020]EasyThinking
文件所在位置:runtime/session/sess_rrrrrrrrrrrrrrrrrrrrrrrrrrrr.php。漏洞利用方法:注册一个账号,登陆时抓包,修改session字段(长度必须为32位)但是在PHPinfo中看到disable_functions中禁用了很多函数。在readme文件中发现这是一个ThinkPHP6的框架。蚁剑连接,在根目录找到flag和readflag文件。也可以蚁剑下载插件(需要fq)扫目录扫出来www.zip。要执行readflag文件。
2022-09-18 11:43:02
935
原创 [SUCTF 2019]EasyWeb
测试中发现,传值时对于要计算的部分不能用括号括起来,因为括号也将被识别为传入的字符串,可以使用{}代替,原因是php的use of undefined constant特性,例如 $ {_GET}{a}这样的语句php是不会判为错误的,因为{}使用来界定变量的,这句话就是会将_GET自动看为字符串,也就是$_GET[‘a’]php的eval()函数在执行时如果内部有类似"abc"^"def"的计算式,那么就先进行计算再执行,我们可以利用再创参数来实现更方便的操作,例如传入?
2022-09-17 17:44:14
1188
原创 [NPUCTF2020]ezinclude
利用php7 segment fault特性(CVE-2018-14884) php代码中使用php://filter的strip_tags 过滤器, 可以让 php 执行的时候直接出现 Segment Fault , 这样 php的垃圾回收机制就不会在继续执行 , 导致 POST的文件会保存在系统的缓存目录下不会被清除而不像phpinfo那样上传的文件很快就会被删除,这样的情况下我们只需要知道其文件名就可以包含我们的恶意代码。也可以直接在脚本中写入
2022-09-16 13:09:53
1319
1
原创 [HarekazeCTF2019]encode_and_encode
2、options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG,JSON_HEX_AMP, JSON_HEX_APOS,JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT,JSON_UNESCAPED_SLASHES,JSON_FORCE_OBJECT;语法: json_encode ( $ value [, $ options = 0 ] ) 注意:1、$ value为要编码的值,且该函数只对UTF8编码的数据有效;3、第二个参数一般不需要;
2022-09-16 10:56:05
350
原创 [网鼎杯 2018]Comment
3.可以看到,首先进入了tmp目录,将html.zip(应该是网页文件)解压,然后删除压缩包,然后复制到/var/www目录下,并在/var/www/html目录下删除了.DS_Store文件。4.看到一个疑似flag的php文件,读取,注意,.DS_Store目录下的文件是被解压到var/www/html目录下,所以应该从这里读取。发帖时3个参数都经过了addslashes()函数的处理,即会给’,",\,NULL加上转义符。读/etc/init.d下的东西,这里有配置文件路径?
2022-09-13 18:18:49
345
原创 [b01lers2020]Welcome to Earth
马上也会跳转到die页面,并且点击两个按钮也是。随机选择一个然后点击check都会跳转到die页面,查看源码。趁还没跳转查看源码,看到chase路径,访问。点击按钮会跳转到die页面,查看源码。输入任意字符点击按钮无反应,查看源码。发现open页面,访问open页面。点击按钮,来到door页面。打开一个页面过一会会跳转。发现leftt页面,访问。发现shoot页面。发现fight页面,访问。
2022-09-12 16:19:54
589
原创 [GWCTF 2019]枯燥的抽奖
生成伪随机数是线性的,你可以理解为y=ax,x就是种子,知道种子和一组伪随机数不是就可以推y(伪随机数了吗),当然实际上更复杂肯定。mt_scrand(seed)这个函数的意思,是通过分发seed种子,然后种子有了后,靠mt_rand()生成随机数。我知道种子后,可以确定你输出伪随机数的序列。知道你的随机数序列,可以确定你的种子。并且seed一样的情况下,md_rand()生成的随机数也会一样。php伪随机数漏洞 以及脚本php_mt_seed的使用教程。可以看到,两次运行的前2个随机数完全一样。
2022-09-12 11:53:24
178
原创 [CISCN2019 总决赛 Day2 Web1]Easyweb
访问,尝试id为1,2,3时都有图片,其他均没有显示,猜测盲注,尝试异或id=0^1和 0 ^ 0 无反应,换思路,扫描路径扫到敏感文件robots.txt,访问。这时的反斜杠\会将第二个单引号转义,使其变为普通字符,也就是说第一个单引号此时与第三个单引号闭合,id参数对应的值为。后缀成功绕过,但是它回显的并不是我上传文件的路径,而是上传文件的日志记录的路径。$id 变量 用于接收get型参数id的值,如果没有id参数将设置为1。,因为是字符串,所以反斜杠为转义字符,id会被解析为。
2022-09-11 15:18:17
928
原创 [红明谷CTF 2021]write_shell
题目提示写shell,结合代码分析,action参数输入pwd可以获取沙盒路径,输入upload并添加data参数,可以把经过waf函数过滤后的命令执行代码或者shell写入index.php中。过滤单引号,可以使用反引号绕过,在php中,被反引号包裹的代码会被当做命令执行。需要完成的就是绕过waf函数的检测,waf函数使用了递归,过滤了’ 空格 _ php;过滤php目的是过滤php标签
2022-09-11 10:26:48
327
原创 [HFCTF2020]EasyLogin
将alg更改为none后,从JWT中删除签名数据(仅标题+‘.’+header中的alg就是加密方式,把它修改为none,就默认不加密,然后将payload里的username修改为admin即可。看了wp说可以直接访问/controllers/api.js,看到项目的处理逻辑(这里不是很懂。替换登陆包中的验证字段(注意登录用户改为jwt中对应的admin和密码123。尝试使用admin用户登陆,弱口令失败。使用admin用户登陆成功,这个时候尝试访问api/flag。可以放在jwt.io中检验是否正确。
2022-09-10 13:20:04
602
原创 [NCTF2019]True XML cookbook
失败,而且有报错,泄露了源码路径:/var/www/html/doLogin.php。在已经存在的< username>标签中可以进行调用,使用&admin;定义恶意外部实体,在原本的XML数据中进行引用。尝试使用file://协议读取flag。使用intruder模块爆破C段即可。尝试使用http协议访问,发现报错。
2022-09-09 18:50:51
761
原创 [MRCTF2020]套娃
查看源码:$_SERVER[‘QUERY_STRING’]用于获取url中的参数,例如www.xxx.com/?a=1 获取到的就是a=1substr_count用于获取字符串中包含子串的个数第一个if要求参数中不包含_ 和%5f绕过:利用PHP的字符串解析特性Bypass可以使用,,绕过,也就是说我们参数如果是?b u p t的话 变量名会被解析为为b_u_p_t第二个if要求传入的b_u_p_t参数不能为23333 但是正则又必须匹配以23333为开头和结尾/^23333$/这里的正则匹
2022-09-09 12:21:05
689
原创 [FBCTF2019]RCEService
见上图,可见第4步的时候,因为第一个.*可以匹配任何字符,所以最终匹配到了输入串的结尾,也就是//aaaaa。,14步匹配.*,第二个.*匹配到了字符串末尾,最后结束匹配。系统命令需要有特定的环境变量的也就是路径,系统找不到该路径下的exe文件怎么执行系统命令,因此这个地方查阅资料后发现只能调用绝对路径下的命令,cat命令就在/bin/目录下面。所以NFA就开始回溯,先吐出一个a,输入变成第5步显示的//aaaa,但仍然匹配不上正则,继续吐出a,变成//aaa,仍然匹配不上……,假设匹配的输入是
2022-09-04 17:29:40
664
原创 [Zer0pts2020]Can you guess it?
例如,在地址为 http://c.biancheng.net/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’]将得到 /test.php/foo.bar。第一个if做了正则的判断,判断$_SERVER获取到的值是否以config.php/* 结尾。$_SERVER[‘PHP_SELF’]的值就是index.php/a.php/a/b/c/d/ (忽略传参)如果url是:http://xxx/index.php/a.php/a/b/c/d/?、《》、中文等,例如。..
2022-08-18 15:44:10
735
1
原创 [WUSTCTF2020]颜值成绩查询
测试输入1-5 各有输出,1为 Hi admin, your score is: 100。0和大于6的显示 student number not exists.[WUSTCTF2020]颜值成绩查询。得到字段名为flag,value。得到表名为flag和score。参考我做的另外一道题的。得到数据库名为ctf。...
2022-08-14 11:51:18
1301
原创 [极客大挑战 2019]RCE ME
利用linux提供的LD_preload环境变量,劫持共享so,在启动子进程的时候,新的子进程会加载我们恶意的so拓展,然后我们可以在so里面定义同名函数,即可劫持API调用,成功RCE。发现读取不了flag,需要执行readflag才行,但是disable_functions禁用了许多函数,需要绕过才行。有点没看懂,应该是一个利用异或的payload,异或出来应该是GET,然后接收后面的参数形成$a( $b)的形式。LD_PRELOAD这个环境变量指定路径的文件,会在其他文件被调用前,最先被调用。...
2022-08-14 10:46:26
250
原创 [NPUCTF2020]ReadlezPHP
尝试构造system(“ls /”),无回显,尝试其他函数,使用assert(phpinfo();有反序列化的操作,想到操作data参数。源代码中发现路径,访问得到php源码。说明要构造命令执行函数加命令。执行成功找到flag。...
2022-08-12 11:46:43
446
原创 [SUCTF 2019]Pythonginx
管理脚本:/usr/lib64/systemd/system/nginx.service。Nginx配置文件:/usr/local/nginx/conf/nginx.conf。程序默认存放位置:/usr/share/nginx/html。模块:/usr/lisb64/nginx/modules。日志默认存放位置:/var/log/nginx。得到flag位置:/usr/fffffflag。应用程序:/usr/sbin/nginx。配置文件存放目录:/etc/nginx。编写脚本寻找符合条件的字符:参考。..
2022-08-11 11:06:16
436
原创 [CISCN2019 华东南赛区]Web11
smart是php的模板引擎,模板引擎的作用就是分离前端页面和数据的,题目中显示API的URL由于环境的原因无法使用,但我们的IP依旧显示在了页面的右上角,且根据它的提示XFF我们很容易想到,在X-Forwarded-For里构造sstipayload。Smarty支持使用{php}{/php}标签来执行被包裹其中的php指令,那么我们可以使用{php}{/php}标签来构造payload,但是本题会报错。每个{if}必须有一个配对的{/if}.也可以使用{else}和{elseif}....
2022-08-02 11:24:17
699
原创 [SWPU2019]Web1
而在MYSQL5.6以上的版本中,inndb增加了innodb_index_stats和innodb_table_stats两张表,这两张表中都存储了数据库和其数据表的信息,但是没有存储列名。在5.7以上的MYSQL中,新增了sys数据库,该库的基础数据来自information_schema和performance_chema,其本身不存储数据。接着查表名的时候发现or被过滤,且无法通过大小写和双写绕过,那么information_schema因为含有or,所以也没法使用。使用单引号尝试,报错。...
2022-08-02 10:33:40
730
1
原创 [BSidesCF 2019]Kookie
在请求包中添加Cookieusername=admin。但是提示有账户cookie/monster。登录框尝试sql注入万能密码。看提示看源码扫目录。有set-Cookie字段。
2022-08-02 09:18:28
147
原创 [极客大挑战 2019]FinalSQL
利用id=0^1为NO!Clickothers~~~id=1^1为ERROR!到最后一个页面发现提示尝试第6个页面,观察到url中的id,输入6得到。过滤了不少,但是异或^没被过滤,并且没有报错页面,那么应该是盲注。flag不在此处,查询另一张表的password字段。提示error那么应该存在sql注入,尝试永真式。Flaaaaag表字段为idfl4gawsl。爆破出表名为F1naI1y,Flaaaaag。[极客大挑战2019]FinalSQL。使用异或的特性相同为0不同为1测试。...
2022-08-01 15:34:05
1191
原创 [MRCTF2020]PYWebsite
添加XFF头127.0.0.1,得到flag。提示除了购买者和自己没人可以看到flag。访问flag.php。
2022-08-01 09:40:00
233
原创 [MRCTF2020]Ezpop(详解)
将pop对象的参数source作为Show类的对象(此时source对象也有两个参数source和str),则会执行__toString()函数,returnsource对象的str参数的source,此时str如果是Test类的一个对象,则没有source参数,执行__toString()函数则会找不到source参数,就会调用Test类对象str的__get()函数。所以可以将参数p设置为Modifier类的对象,从而执行__invoke()函数,进而执行append函数。...
2022-07-29 16:30:48
2823
3
原创 [BJDCTF2020]EasySearch
这里用到shtml,HTML是静态的,而shtml基于SSI技术,当有服务器端可执行脚本时被当作一种动态编程语言,所以可以注入,也可以用来远程命令执行。只要密码的md5值的前6位为6d0bc1即可登陆成功。所以只需要将username设置为payload即可。一个登陆页面,尝试了弱口令爆破注入无果。扫描目录发现index.php.swp。得到密码为2020666。接着看到shtml页面。...
2022-07-29 10:29:47
254
原创 [WesternCTF2018]shrine
os.environ.pop(‘FLAG’)获取环境变量存放在名为FLAG的config中。不过python还有一些内置函数,比如url_for和get_flashed_messages。执行函数的黑名单有两个config和self。flask框架首先考虑模板注入ssti。那么目的就是获取config中的值。...
2022-07-27 18:07:30
311
原创 [网鼎杯 2020 朱雀组]Nmap
nmap192.168.0.*--exclude192.168.0.100使用“-exclude”选项来排除某些你不想要扫描的主机。nmap-F192.168.0.101快速扫描,仅扫描nmap-services文件中的端口而避开所有其它的端口。nmap-O127.0.0.1使用选项“-O”和“-osscan-guess”也帮助探测操作系统信息。nmap-p80,443192.168.0.101使用“-P”选项指定你想要扫描的端口。...
2022-07-27 14:39:49
1621
原创 Dest0g3 520迎新赛-web-funny_upload
上传成功(由于有前端验证,需要上传符合后缀的文件然后在burp中修改文件名和文件内容即可)尝试蚁剑连接,成功,在根目录下找到flag。尝试上传base64编码后的文件。尝试上传.htaccess文件。但是蚁剑始终连不上没找到原因。然后上传.htaccess文件。直接上传php马前端提示。说明对文件内容也做了校验。...
2022-07-16 19:07:22
798
1
原创 Dest0g3 520迎新赛-web-EasyPHP
通过set_error_handler()函数设置用户自定义的错误处理程序,然后触发错误。这里触发错误后会输出flag。注意到$fl4g.=$dest0g3;是一个字符拼接的操作,数组和字符拼接会出错,所以构造。关键在于set_error_handler函数。...
2022-07-16 18:21:40
399
原创 [WUSTCTF2020]朴实无华
web第46题[WUSTCTF2020]朴实无华打开靶场:其中有一个header的报错,搜了一下,一般来说在header函数前不能输出html内容,如果在header()执行之前有echo等语句,当后面遇到header()时,就会报出 “Warning: Cannot modify header information - headers already sent by …”错误。就是说在这些函数的前面不能有任何文字、空行、回车等,而且最好在header()函数后加上exit()函数除了这个就没什
2022-04-18 23:16:14
364
原创 [BJDCTF2020]Cookie is so stable(漏洞原理详解)
web第45题[BJDCTF2020]Cookie is so stable打开靶场访问flag页面一个输入框访问hint页面,查看源码提示与cookie有关那么在flag页面输入后抓包观察输入后显示登陆后抓包显示为做到这里又遇到新的知识点了,模板注入漏洞参考大佬的博客:一篇文章带你理解漏洞之 SSTI 漏洞,讲的非常详细漏洞原理:SSTI 怎么产生的服务端接收了用户的恶意输入以后,未经任何处理就将其作为 Web 应用模板内容的一部分,模板引擎在进行目标编译渲染的过
2022-04-18 17:15:34
3423
1
原创 [NCTF2019]Fake XML cookbook
web第44题[NCTF2019]Fake XML cookbook打开靶场:一个登录页面,使用burp抓包可以看到类型是xml第一次接触XXE漏洞,参考:浅谈XML实体注入漏洞讲的非常详细XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文
2022-04-18 11:57:33
2442
原创 [安洵杯 2019]easy_web
web第43题[安洵杯 2019]easy_web打开靶场发现有命令执行的可能在cmd参数中做尝试:尝试了很多命令,发现基本都被过滤了转换思路:img参数可以根据值进行读取,那么cmd参数可能同样可行,尝试对img参数的值base64解密解密两次后发现一串字符经过观察应该是16进制,转字符得到555.png:按照此规则构造index.php的加密,然后作为img参数的值,那么理论上可以引入index.php文件将TmprMlpUWTBOalUzT0RKbE56QTJPRGN3
2022-04-17 19:57:04
4086
1
原创 [强网杯 2019]高明的黑客
web第42题[强网杯 2019]高明的黑客打开靶场根据提示下载备份文件里面有几千个php文件审计一下发现,很多类似于这种,有命令执行的可能,但是很多将参数置空了,无法利用,只能自己寻找可以利用的php文件,手动寻找不现实 ,只能编写脚本学习大佬的脚本:出处:[强网杯 2019]高明的黑客(考察代码编写能力)import osimport requestsimport reimport threadingimport timeprint('开始时间: '+ time.asc
2022-04-16 13:22:16
1202
原创 [BJDCTF2020]Mark loves cat
web第41题[BJDCTF2020]Mark loves cat打开靶场:一个个人网页,查看源码没有发现,尝试一波目录扫描发现有.git目录,猜测存在.git源码泄露参考[GXYCTF2019]禁止套娃的开始思路利用GitHack将源码下载下来由于环境有问题,index.php和flag.php文件下载不下来,只能得到assets文件夹只好借用别人wp的源码:flag.php:<?php$flag = file_get_contents('/flag')index
2022-04-15 18:47:28
953
原创 [BSidesCF 2020]Had a bad day
web第40题[BSidesCF 2020]Had a bad day打开靶场:点击链接发现有参数传递。考虑命令执行和sql注入的可能尝试使用php://filter读取文件原理介绍:php://filter 的使用尝试读取index.php。发现报错php://filter/read=convert.base64-encode/resource=index.php根据提示信息,可能自动给文件加上了.php后缀,去掉自己写的文件后缀,再次尝试:得到base64加密后的index
2022-04-15 16:29:13
249
原创 CTFHub-技能树-web-备份文件下载-.DS_Store
打开靶场:根据提示访问.DS_Store文件下载后使用记事本打开发现有很多空格。替换得到flag的位置,访问得到flag
2022-04-15 15:31:40
695
原创 CTFHub-技能树-web-备份文件下载-vim缓存
打开靶场:用户在使用vim进行编辑的时候,以为意外退出时,会在当前目录生成一个备份文件,文件名格式为: .名字.swp第一次意外退出生成 *.swp第二次意外退出生成 *.swo第三次意外退出生成 *.swn访问 .index.php.swp 下载得到文件可以使用notepad打开得到flag也可以在linux环境中使用cat查看文件...
2022-04-15 15:15:37
1233
原创 CTFHub-技能树-web-备份文件下载-bak文件
打开靶场提示flag在index.php文件中此时需要得到网站的备份文件先进行目录扫描得到index.php.bak备份文件下载打开得到flag
2022-04-15 15:01:27
554
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人