CTFSHOW刷题记录
文章平均质量分 83
就记记CTFSHOW
Z3r4y
向往自由的web安全萌新;友链:4rih04x.fun
展开
-
【Web】CTFSHOW 常用姿势刷题记录(全)
通过将常用的函数、类和数据打包成.so 文件,不同的程序可以共享这些代码,避免重复编写和维护相同的代码逻辑,提高了代码的重用性。原创 2024-02-25 14:07:39 · 1929 阅读 · 0 评论 -
【Web】CTFSHOW java刷题记录(全)
给了war包,解压得到class文件,用java反编译工具来读源码。进行一波S2-009 showcase rce的搜。直接访问/getFlag路径回显如下,这条路走不通。不能直接读环境变量,拿个whoami意思一下(进行一波S2-008 devmode的搜。打不出来啊,只能用羽师傅的脚本了。进行一波S2-037的搜。进行一波S2-045的搜。进行一波S2-032的搜。进行一波S2-033的搜。进行一波S2-016的搜。进行一波S2-019的搜。进行一波S2-029的搜。进行一波S2-048的搜。原创 2024-02-17 00:00:16 · 1417 阅读 · 0 评论 -
【Web】CTFSHOW java反序列化刷题记录(部分)
因为Connection类设置了默认的ip和端口,不符合文章里直接RCE的特征,所以考虑任意文件写入。除了payload要post传参,get传参长度太长会报错,其他流程都一样。生成的payload放bp自带的decoder里进行一次url全编码。TransformedMap也被ban了,CC1不能打了,换CC3。考察JDBC反序列化,并给了User类和Connection类代码。再访问/yjh.php,用nc反弹shell。监听端口,成功反弹shell。监听,成功反弹shell。原创 2024-02-19 00:00:19 · 1205 阅读 · 0 评论 -
【Web】CTFSHOW PHP特性刷题记录(全)
知其然知其所以然,尽量把每种特性都详细讲明白。原创 2024-01-14 21:58:57 · 1446 阅读 · 0 评论 -
【Web】Ctfshow Nodejs刷题记录
由于这里的参数名和函数体的字符串内容是一致的,因此实际上相当于是将query字符串解析成了一个函数并立即执行这个函数,返回值作为整个语句的结果。Function(query)是一个函数构造器,它将一个字符串参数(query)作为函数体,然后返回一个新的函数。这里要注意的是,user.userinfo.isAdmin原本就存在,不会向上找,修改Object.isAdmin无用。这时候看api.js的代码,发现存在可以在login污染query参数 再在api利用Function反弹shell。原创 2023-11-20 21:22:23 · 257 阅读 · 0 评论 -
【Web】Ctfshow XSS刷题记录
如果直接获取cookie只能拿到自己的,这里提示要拿到admin的。管理员才能查看用户名和密码,如果我们在注册的时候写入xss的payload,就会在用户管理界面执行我们的xss代码,从而获得admin的payload。密码在layui-table-cell laytable-cell-1-0-1类中,可以用getElementsByClassName来获取。这里的是管理员在点击过js后立马登出,它的cookie一直是无效的,我们这里获取的话可以去获取它的用户名和密码。用admin admin登录即可。原创 2023-11-22 01:27:32 · 609 阅读 · 0 评论 -
【Web】Ctfshow SSTI刷题记录1
题目给到Hint,尝试传?name={{1-1}}测试出ssti注入点。使用{%%}绕过,再借助print()回显。原创 2023-11-19 23:00:59 · 1237 阅读 · 0 评论 -
【Web】Ctfshow SSRF刷题记录1
核心代码解读curl_init():初始curl会话curl_setopt():会话设置curl_exec():执行curl会话,获取内容curl_close():会话关闭。原创 2023-11-19 00:43:50 · 451 阅读 · 0 评论 -
【Web】Ctfshow Thinkphp3.2.3代码审计(1)
ThinkPHP在开启DEBUG的情况下会在Runtime目录下生成日志,而且debug很多站都没关,其目录结构为 Application/Runtime/Logs/Home/年份_月份_日期.log。在fetch方法中执行了eval('?访问/Application/Runtime/Logs/Home/21_04_15.log。发现任意命令执行后门:/index.php?题目提示要爆破,而且不超过365次 (1年的天数)查看附件源码 (config.php)发现定义了一个可执行命令的路由规则。原创 2023-11-26 11:17:00 · 355 阅读 · 0 评论 -
【Web】Ctfshow Thinkphp5 非强制路由RCE漏洞
前面审了一些tp3的sql注入,终于到tp5了,要说tp5那最经典的还得是rce下面介绍非强制路由RCE漏洞。原创 2023-12-29 19:49:39 · 1036 阅读 · 0 评论 -
【Web】CTFSHOW PHP命令执行刷题记录(全)
期末复习不了一点,不如做点旧题醒一醒手感。每一题都尽量用不同payload,如果相同会合并。原创 2024-01-10 09:29:07 · 1262 阅读 · 0 评论 -
【Web】Ctfshow Thinkphp3.2.3代码审计(2)
这段代码的作用是根据数据库字段类型的定义,对数据进行相应的类型转换,以确保数据的类型与数据库字段类型匹配,从而提高数据的准确性和一致性。比如数据库中的id是int型会进入intval函数,你输入1' union select * # 转换后就成了1。因为$options['where']是一个数组,所以会从if进入_parseType。其实很明显就是让$options['where']不为数组就可以了。所以要用一些路子,不进入到下面的if判断里。因为1是number,所以会让。这是我们不愿意看到的。原创 2023-12-25 23:52:22 · 360 阅读 · 0 评论 -
【Web】Ctfshow Thinkphp3.2.3代码审计(3)
(这里我认为数据库id字段类型为varchar,这样数组条件判断进_parseType()就不会受到数字型或布尔型强制类型转化干扰)发现会进到is_string的判断里,让$options['where']=array("_string"=>"1")之后传入到find(),和web573一样也是以数组形式传参,只不过传入的参数也是数组,我们跟一下代码。键'_string'的首字符为'_',跟进parseThinkWhere()这题与web573的区别在于进find()前先进了where()处理。原创 2023-12-26 11:22:56 · 284 阅读 · 0 评论 -
【Web】Ctfshow Thinkphp3.2.3代码审计(4)
这里是从cookie里读user键对应的值进行反序列化,并将实例化对象与传入的id比较,如果id属性与传入的id相等,则show方法调用底层的eval执行实例化对象的username属性。因此,确保在进行反序列化之前,你需要确保序列化的类定义存在,并且能够被自动加载或手动引入。这里令$name=_content,$from=写的马即可让$_content非空,从而eval()执行php代码。这次where()里直接传了一个数组,省得走if将字符串的值再改为_string的数组了。原创 2023-12-28 01:15:17 · 1144 阅读 · 0 评论 -
【Web】CTFSHOW PHP文件包含刷题记录(全)
温故知新。原创 2024-01-11 20:20:37 · 1425 阅读 · 0 评论