![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BUUCTF-WEB
文章平均质量分 59
sleepywin
这个作者很懒,什么都没留下…
展开
-
web:shrine
理清思路,由于代码可以知道flag存储在config中,可以直接构造payload查询。绕过思路,代码里有过滤,会把()替换,这里可以双写绕过,用命令执行读取文件。由代码可知,config['FLAG'],所以可以得到flag。查看源代码,查看可知为ssti注入。如果是不清楚flag存在哪里,就需要先获取全局变量。根据上述文章,也可以使用另一个payload。先可以测试一下是否存在ssti模板注入。另一个思路,这里可以参考一篇文章。回显成功,存在ssti模板注入。根据文章,payload如下。原创 2024-03-13 22:23:57 · 398 阅读 · 0 评论 -
web:[BSidesCF 2020]Had a bad day(伪协议、协议嵌套利用、strpos()函数)
通过源码可知,必须要含有woofers、meowers、index其中一个,直接查找flag是找不到的,这里需要包含其中一个。如果存在,则继续执行下一步;如果不存在,则不执行任何操作。这里用到伪协议,用php://filter读取php文件源码内容。可能是被拼接了,删除后面的php就行。进入页面显示如下,有两个选项。从URL的查询参数中获取名为。这里利用strpos()函数。这里可以注意到url的变化。没有正常显示,查看报错信息。如果满足前面的条件,则使用。所指定的PHP文件。原创 2024-01-02 22:51:25 · 707 阅读 · 0 评论 -
web:[BJDCTF2020]The mystery of ip(ssti模板注入、Smarty 模板引擎)
这里尝试抓包加上X-Forwarded-For请求头修改为127.0.0.1。尝试了{{config}}报错,报错信息显示smarty模板引擎。输入{{2*2}},回显4,确定为ssti注入。直接cat发现有两个flag,真的在根目录下。这里发现输入什么就回显什么,存在ip伪造。在hint.php的源代码页面中发现。了解一下smarty模板引擎。由题目可以知道要从ip入手。点击flag页面得到ip。原创 2023-12-30 18:13:34 · 555 阅读 · 0 评论 -
[RoarCTF 2019]Easy Java(java web)
servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。总之,WEB-INF目录是Java Web应用程序中的一个特殊目录,包含了Web应用程序的配置文件、类文件和JAR文件等。WEB-INF是Java Web应用程序中的一个特殊目录,它位于Web应用程序的根目录下。此外如果想在页面访问WEB-INF应用里面的文件,原创 2023-12-29 22:46:23 · 1281 阅读 · 0 评论 -
web:[GXYCTF2019]BabyUpload(文件上传、一句话木马、文件过滤)
尝试上传.htaccess,上传失败,用抓包修改文件后缀。文件后缀名为image/jpeg,抓包修改文件后缀名。上传了一个包含php一句话木马的文件,显示如上。返回题目首页,找到了题目源码。上传包含一句话木马的图片。随便上传一个文件看看。上传一个文本文件显示。原创 2023-12-07 23:38:01 · 535 阅读 · 0 评论 -
web:[SUCTF 2019]CheckIn(一句话木马,.user.ini)
换一种写法,需要加上GIF89a,进行exif_imagetype绕过。这里用.user.ini或者用post传参system('cat/flag')上传了一个文本,显示失败,不是图片。上传文件,随便上传一个文件试试。.user.ini内容为。那就换图片马上传试试。原创 2023-12-06 23:09:40 · 122 阅读 · 0 评论 -
web:[ZJCTF 2019]NiZhuanSiWei1
据题目给的代码,需要将代码序列化之后,会赋值给password,password会被反序列化成原来的代码再赋值给password,然后echo $password,这里构造的php代码(file)就是一个类,通过base64解码之后得到代码中_tostring这个函数,在类被echo会被调用,就相当于echo 了一个类,就会触发到我们写的代码里的tostring。file_get_contents是得读取到文件里的内容,而$text是一个变量,file_get_contents不能读取一个变量,所以必须。原创 2023-11-25 21:24:41 · 478 阅读 · 0 评论 -
web:[WUSTCTF2020]朴实无华
level1代码中,intval()函数将$num转换为整数类型,并进行比较判断,如果$num小于2020且$num+1大于2021,则输出消息“我不经意......”意思为不能修改报头信息-报头已经发送(输出开始于/var/www/html/index.php:3)在/var/www/html/index.php第4行。level2是md5,找到一串数字使它md5加密后的数值和原来的相等,php具有弱类型,==进行比较的时候会先将字符串类型转化为相同,再比较。中不包含空格,则执行下面的代码;原创 2023-11-24 00:08:48 · 591 阅读 · 0 评论 -
web:[GXYCTF2019]禁止套娃
最后代码会检查参数中是否包含特定字符串,如"et", "na", "info", "dec", "bin", "hex", "oct", "pi", "log"等。\)\),可以迭代下去,那么它所匹配的就是print(echo(1))、a(b(c()));首先使用了正则表达式匹配来检查exp参数中是否包含“data://”,"fliter://","php://","phar://"等协议,日若包含其中任何一个协议,会输出。是PHP的一个函数,用于启动一个新的会话或者恢复一个已存在的会话。原创 2023-11-21 23:53:30 · 340 阅读 · 0 评论 -
web:[网鼎杯 2018]Fakebook
但是之前爆列名的时候没有blog,所以我们要设置的点就是data那里了,所以在第四列进行注入,需要把序列化的句子包在单引号里。通过get获得指定的URL,设置curl 参数,并将指定URL的内容返回,只要返回内容不为404即可。扫出另一个flag.php和robots.txt,访问flag.php回显内容为空。网页提示/user.php.bak,直接访问会自动下载.bak备份文件。这一串序列化的结果为注册的账号,被序列化输出,结合之前的代码审计结果。这里用了union select,发现被过滤了。原创 2023-11-11 23:12:33 · 106 阅读 · 0 评论 -
web:[CISCN2019 华北赛区 Day2 Web1]Hack World
打开页面,页面提示为,想要的都在‘flag’表和‘flag’列里。随便输入一个数字看回显(1 2 3),发现回显不一样。这里使用了bp抓包,发现关键字都被过滤了。输入单引号,显示bool(false)这里用异或算法进行绕过。原创 2023-11-04 23:58:10 · 132 阅读 · 0 评论 -
web:[GYCTF2020]Blacklist
猜测flag在FlagHere表中。这里猜测flag在flag列中,尝试获取内容,提交为3-1,发现页面回显为空白。猜测是sql注入,先测试。回显了黑名单限制的关键字。点开靶机,页面显示为。可以判断为字符型注入。原创 2023-10-31 23:57:31 · 98 阅读 · 0 评论 -
web:[网鼎杯 2020 青龙组]AreUSerialz
这里有__destruct()函数,在对象销毁时自动调用,根据$op属性的值进行一些操作,并重置属性的值,后再次调用process()方法,同时该函数会根据op变量值的不同,会相应调用读写函数。总体解题思路为,构造反序列化给str变量,当主函数进行反序列化时,调用了FileHandler类,读取flag.php。接收到名为str的get参数,参数会被反序列化,并创建一个对象,在反序列化之前,会使用。2.php的序列化字符串中只要把其中的s改成大写的S,后面的字符串就可以用十六进制表示。原创 2023-10-30 00:03:04 · 3640 阅读 · 1 评论 -
web:[MRCTF2020]Ez_bypass
get参数传参,后判断md5后的值是否相等,这里为===强等于,可以将参数设置为数组进行绕过,若是双等号弱等于,可以找两个md5加密后开头都是0e的参数进行绕过(会被认为是科学计数法)用post传参password,使用了is_numeric判断是否是数字,若判断不是数字,就判断是否为1234567,这里需要绕过is_numeric。进行代码审计,先看第一段。原创 2023-10-19 21:55:04 · 5031 阅读 · 0 评论 -
web:[极客大挑战 2019]HardSQL
这里按照常规思路继续使用order by函数和union select函数进行查询,但是页面没有任何显示。这里也是显示不全,按照上面的updatexml后的方法进行补全即可。这里空格和=没有,使用()代替空格,使用like代替=题目名为hardsql,先来尝试有无sql注入存在。查看源代码没有发现其他的提示信息,随便尝试一下。发现flag显示不全,函数显示有字符数限制。先查询数据库,构造payload。查询表,构造payload。查字段,构造payload。可得知数据库名为geek。原创 2023-10-19 19:57:50 · 469 阅读 · 2 评论 -
web:[MRCTF2020]你传你呢
这里参考了大佬的wp,上传一个.htaccess文件,这个.htaccess文件的作用就是把这个图片文件解析成php代码执行。上传文件,先随便上传一个文件看看情况。.htaccess文件的内容为。回显一片空白,说明木马上传成功。构造含有一句话木马的图片上传。这里用bp抓包修改类型。在根目录找到flag。原创 2023-10-10 23:11:19 · 634 阅读 · 3 评论 -
web:[HCTF 2018]admin
显示admin已经被注册了,所以知道用户名为admin,先就是猜测密码是什么。这里用bp抓包,使用字典进行爆破可得密码。页面没有其他的提示,查看源代码。先注册一个admin账号试一下。得到密码,登录即得到flag。这里提示不是admin。没有账号,先注册一个。输入账号密码显示如下。原创 2023-10-09 22:30:06 · 111 阅读 · 0 评论 -
web:[护网杯 2018]easy_tornado
因为render()是tornado里的函数,可以生成html模板。是一个渲染函数,就是一个公式,能输出前端页面的公式。tornado是用Python编写的Web服务器兼Web应用框架,简单来说就是用来生成模板的东西。和Python相关,和模板相关[护网杯 2018]easy_tornado_超级兵_140的博客-CSDN博客。原创 2023-10-08 23:39:38 · 192 阅读 · 0 评论 -
web:[RoarCTF 2019]Easy Calc
1.php的字符串解析特性我们知道PHP将查询字符串(在URL或正文中)转换为内部GET或的关联数组_POST。例如:/?foo=bar变成Array([foo]=> “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id]=> 42)2.scandir()函数3.var_dump()函数[复现] [RoarCTF 2019]Easy Calc-腾讯云开发者社区-腾讯云。原创 2023-10-01 13:02:02 · 279 阅读 · 0 评论 -
web:[极客大挑战 2019]PHP
1.从__destruct,__construct,__wakeup可以判断存在反序列化漏洞2.php序列化与反序列化序列化:函数为serialize(),把复杂的数据类型压缩到一个字符串中 数据类型可以是数组,字符串,对象等反序列化:函数为unserialize(),将字符串转换成变量或对象的过程常用的内置方法:__construct():创建对象时初始化,当一个对象创建时被调用__wakeup() 使用unserialize时触发。原创 2023-09-30 23:42:59 · 7675 阅读 · 0 评论 -
web:[极客大挑战 2019]BabySQL
考查重写绕过。原创 2023-09-29 23:30:15 · 319 阅读 · 0 评论 -
web:[ACTF2020 新生赛]Upload
根据之前的上传文件之类的题目,这里使用bp抓包后改后缀名为phtml。点进页面,是一个文件上传,能联想到getshell。显示上传的文件以jpg、png、gif结尾的图片。构造一句话木马,再将文件后缀改为jpg。成功执行phpinfo,使用蚁剑链接。显示上传成功,但是显示无法解析成功。尝试一下能不能执行php代码。先尝试随便上传一个文件试试。原创 2023-09-29 22:30:52 · 250 阅读 · 0 评论 -
web:[极客大挑战 2019]Upload
1.图片文件头:GIF89a2.黑名单检测:phtml,在php中等有概率能够解析为脚本执行。3.检测拦截<?原创 2023-09-29 22:07:07 · 653 阅读 · 0 评论 -
web:[极客大挑战 2019]LoveSQL
用union来查询测试注入点,查看回显点CTF-Web-[极客大挑战 2019]LoveSQL - 知乎LoveSQL-CSDN博客。原创 2023-09-29 19:18:48 · 486 阅读 · 0 评论 -
web:[SUCTF 2019]EasySQL
将”||”视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似.SELECT * 和 SELECT 所有列,两者差别几乎可忽略。所以查询所有字段(或者大多数字段)的时候,可以用select *来操作。|| 逻辑或的短路:a||b计算机发现a是真,那么输出a;如果a是假,那么输出bselect 1 from :建立一个临时列,这个列的所有初始值都被设为1。Mysql中的||0 || 1 = 13 || 4 = 10 || 0 = 0。原创 2023-09-25 22:13:32 · 973 阅读 · 0 评论 -
web:[极客大挑战 2019]Knife
回归题目,页面显示使用菜刀和一句话木马,使用蚁剑连接。点开页面显示为,还有一句话木马。查看源代码,没有什么特别的。在根目录找到了flag文件。原创 2023-09-24 21:10:53 · 62 阅读 · 0 评论 -
web:[极客大挑战 2019]Http
点进页面显示为不知道是从如图所示的网址来,所以需要抓包修改Referer头为https://Sycsecret.buuoj.cn。提示为UA为Syclover,用bp抓包修改。用bp修改添加X-Forwarded-For。浏览了这个网站的页面发现没有什么提示信息。发现一个secret.php,点进去访问。发送后显示不是来自本地。原创 2023-09-24 20:07:39 · 121 阅读 · 0 评论 -
web:[强网杯 2019]随便注
1.表名为数字时,需要用反引号抱起来查询1';方式二:1';2.堆叠注入的绕过姿势修改表名:ALTER TABLE 旧表名 RENAME TO 新表名;修改字段:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;1';或者rename命令用于修改表名。rename命令格式:rename table 原表名 to 新表名;1';[强网杯 2019]随便注_今天小白努力学习了吗的博客-CSDN博客。原创 2023-09-23 23:10:52 · 244 阅读 · 0 评论 -
web:[GXYCTF2019]Ping Ping Ping
空格绕过方法$IFS${IFS}$IFS$1 //$1改成$加其他数字貌似都行$IFS$9 后面加个$与{}类似,起截断作用,$9是当前系统shell进程第九个参数持有者,始终为空字符串,如cat$IFS2$9flag.php<>{cat,flag.php} //用逗号实现了空格功能%20%09#关键字绕过方法#以flag为例单引号绕过 fla'g'双引号绕过 fla"g"反斜线绕过 f\lag变量拼接绕过 a=g;原创 2023-09-22 23:29:10 · 309 阅读 · 0 评论 -
web:[ACTF2020 新生赛]Exec
exec为命令执行漏洞,存在多条命令执行;# 分号隔开每条命令,整行命令按照从左到右的顺序执行,彼此之间互不影响,所有的命令都会执行。| # 只执行后面那条命令。|| # 只执前面那条命令。& #两条命令都会执行。&& # 两条命令都会执行。原创 2023-09-22 22:48:27 · 357 阅读 · 0 评论 -
web:[ACTF2020 新生赛]Include
提示信息也要包括题目名。原创 2023-09-21 22:32:34 · 362 阅读 · 0 评论 -
web:[HCTF 2018]WarmUp
根据提示信息,进行目录穿越可获得flag,这里flag写了四次,可能使用四个或五个../跳转至该页面,页面显示为一段php代码,需要进行代码审计。查看网页源代码,发现source.php,尝试访问一下。点进页面,页面只有一张滑稽脸,没有其他的提示信息。先访问hint.php看看有没有别的提示信息。原创 2023-09-21 18:35:02 · 313 阅读 · 0 评论 -
web:[极客大挑战 2019]Havefun
点进页面,页面显示是一只猫,没有其他的提示信息。这段php代码包含了通过get方式的提交信息。查看网页源代码,划到最后。原创 2023-09-21 18:11:43 · 200 阅读 · 0 评论 -
[极客大挑战 2019]EasySQL1 wp sql注入万能密码
ctf解题原创 2023-04-21 23:48:48 · 135 阅读 · 0 评论