- 博客(49)
- 收藏
- 关注
原创 [强网杯 2019]Upload 练习 占位 明天写详细
先注册登录 尝试文件上传 同时后台在扫文件。上传尝试几次没思路 返、发现扫描出源码。就是传图片马和反序列化。
2026-06-23 17:57:53
230
原创 从零搭建一个 Web 目录扫描器(Python + FastAPI)
第一次做算小工具的完整项目,来练手感觉还不是很完善用法可以看readme.md(应该没人会用,dirsearch好用的多)不过可以看看源码。
2026-06-18 20:16:49
61
原创 [PWNHUB 公开赛 2018]傻 fufu 的工作日
你的数组是先塞入了 'jpg'(键1),后塞入了 'php'(键0)。因为这个数组里确实存在键名 1,对应的值就是 'jpg'。结论:这种写法等价于 $filename[1],它取的是键名为 1 的值,与元素是否排在最后毫无关系。count($filename) 计算的是元素个数,这里有两个元素,所以结果是 2。end() 将内部指针指向最后插入的那个元素,也就是后塞入的 'php'。结论:end() 取的是插入顺序的最后一个,与键名数字大小无关。end() 函数忽略键名,只关注数组内部的“指针位置”。
2026-06-17 13:46:12
224
原创 l33t-hoster
也遇到了mochu7=var_dump(file_get_contents('/flag'));返回bool(false)的问题。拼尽全力卡在最后一步 最后决定先放放 感觉是平台flag有点问题(之前有个题也是flag为空)确实严格 php过滤的差不多我就想到了.htaccess 但要求实在太多了 没啥思路。学习到拿到shell 然后我是在ctf2(前buuctf)上做的。明天总结下学习的知识点 先记录下做题过程 看了很多大佬的博客。source 看这个页面 发现过滤的代码。先看末 初大佬的博客。
2026-06-16 16:41:57
211
原创 [HITCON 2017]SSRFme
str_replace(".", "", ...)` 本想阻止 `..`,但 `..` → `""` 后 `mkdir("")` 和 `chdir("")` 失败,回退到当前目录,文件仍可写入沙箱根目录。**前提条件**:以 `|` 结尾的文件必须先在文件系统中真实存在,`open()` 才会进入命令执行分支。Perl 的 `open()` 特殊行为:**文件名以 `|` 结尾时,当作 shell 命令执行**。- `mkdir("")` / `chdir("")` 失败,留在 sandbox 根目录。
2026-06-11 15:36:06
259
原创 [HITCON 2016]Leaking
在较早一点的node版本中(8.0 之前),当Buffer的构造函数传入数字时,会得到与数字长度一致的一个Buffer,并且这个Buffer是未清零的。8.0之后的版本可以通过另一个函数Buffer.allocUnsafe(size)来获得未清空的内存。到处都是vm2 我开始还在想是不是vm2沙箱逃逸的 vm2的问题(版本漏洞或者rce)一直利用buffer尝试得到含有flag的内存内容。才知道利用的是Buffer这个函数。
2026-06-09 18:08:58
237
原创 [ASIS 2019]Unicorn shop
https://www.compart.com/ 这个网址可以搜到。这个题咋说呢 挺简单的 同时之前遇到过一个类似的和字符相关的题。同时utf-8 中的0x改为%(为了url方式传输 去掉空格)这样我们要找一个大于2000的字符。同时只能购买的金额只能传一个字符。这个题要买到最贵的商品。但我第一时间没想起来。
2026-06-07 11:45:31
146
原创 [0CTF 2016]piapiapia 脚本和总结
再是代码审计 发现漏洞 利用PHP反序列化–字符串逃逸 利用file_get_contents() 函数调用读取config.php。风险:攻击者可构造包含 __destruct() 或 __wakeup() 魔术方法的恶意类对象,触发任意代码执行。// 未验证来源和内容。2文件名被 MD5 哈希后保存为 .jpg,无法保留原始扩展名(如 .php)。风险:攻击者可提交任意序列化字符串(如包含恶意类的对象),触发反序列化漏洞。// 未设置 allowed_classes,允许任意类被反序列化。
2026-06-04 15:22:06
222
原创 [0CTF 2016]piapiapia
/ 生成正则:'/\'|\\\\/' 抽象转义 php转义一次 正则再转义一次。所以,我们可以通过这个反序列化执行命令,那么思路就很明确了:让 $profile[‘photo’]的值为“config.php”,这这样就可以得到falg了,s:10:”config.php”;
2026-06-04 15:14:20
239
原创 AAA‘26
式的 service record 文件。用泄漏的 JWT secret 签发 role: "constructor" 的 token 即可访问所有 admin 接口。ImageMagick 的 convert 命令,虽然在默认配置下不存在直接的漏洞,目前仍有足够的自信把它作为最后的目标。为 NaN, NaN < 3 为 false,因此不会触发 forbidden,成功绕过 admin 权限检查。这个 package 的引入绝对是可疑的,作为调用链的最终一环非常合理;
2026-06-02 15:48:21
252
原创 agent-cloude桌面版
因为平时做题 复现需要agent的辅助提高效率 所以这两天部署了claude的桌面版之前是用的安装在vscode的claude插件(这次先说桌面版的部署)
2026-05-28 14:02:54
200
原创 actf gomysql复现
我立个更新内核了 CVE-2026-31431用不了了只能采用模板注入的方法了其实这个题两种方法前面都一样进入发现有两个功能一个是/calc (计算器)和 /draw(抽取幸运数字)先是calc的sql注入可以发现是Go + MariaDBwp的关键是MariaDB 10.11 支持 EXECUTE IMMEDIATE 语句,且该关键字未被过滤通过该函数可以rce 但权限不够 读取不到flag接下来就是不同了。
2026-05-26 16:30:19
403
1
原创 ACTF 12307复现
rail_common.py:共享工具库,包含 MySQL/Redis 访问、JSON 解析、HTTP 响应发送、签名/验证、站点策略加载。schema.sql:数据库表结构定义。fixtures/railway_business.json:测试数据,包含站点配置、票务索引、策略、布局、设备路由等。seed_loader.py:从 fixtures 加载初始数据入库。
2026-05-25 15:30:08
368
原创 xss学习记录--xss-lab部署
XSS(跨站脚本攻击)是一种常见的Web安全漏洞,攻击者通过注入恶意脚本代码,使用户浏览器执行这些代码,从而达到窃取信息或控制用户行为的目的XSS属于前端漏洞(即浏览器端)通常分为三类 反射型XSS 储存型XSS DOM型XSS同时 我在本地部署了xss-lab用于练习。
2026-03-09 18:07:22
127
原创 sql-lab 20
改为admin' 发现报错 所以注入点应该是Cookie。admin'# 正常回显 我猜测应该是单引号类型。通过抓包可以发现uname在Cookie中。和前面的几个差不多都是请求头的报错注入。......依次得到每个数据库名。...依旧同理得到每个字段名。....同理得到每个表名。COOKIE 报错注入。
2026-03-07 20:16:13
99
原创 sql-lab 19
通过bp抓包 剩下的几乎和sql-lab 18一摸一样。因为不看源码的化不知道字段就推荐采用法1注入。就是注入位置改为Referer。还有题目名称都提示referer。
2026-03-06 18:08:30
60
原创 sql-lab less17
(select * from(select ...)x)嵌套子查询(别名 x 是 MySQL 要求,否则会报错),核心是执行内层的 select concat(username,':',password) from users limit 0,1:mysql不允许更新的表和改的表是同一个表。
2026-03-04 16:42:31
76
原创 sql-lab less16
admin" -- admin' -- admin') -- 显示错误。admin") -- 显示正确 猜到类型为("")对布尔盲注脚本修改类型 可用。和less 15后面操作一样。只有显示正确还是错误。
2026-03-02 20:55:03
31
原创 sql-lab less15
根据图片判断的post类型的布尔盲注脚本还是不知道为啥get 可以多次解码 post就不行 也可能不是确实不太清楚这个问题是针对脚本中"uname": f"admin' and ascii(substr(({select}),{i},1))={ascii_code}#",的#之前的get脚本#用的%23 两边还都不能改 不然就不能跑这个问题我排查了半天才发现QWQ。
2026-03-01 15:47:09
342
原创 sql-lab less14
admin") -- 报错 看错误信息类型为""admin" -- 正常的类型为"" 有错误回显。回显../images/flag.jpg 正常。../images/slap.jpg 错误。和上一个几乎一样就是类型为""其他和上一个一样 还是路边一条。
2026-02-28 18:02:47
42
原创 sql-lab less11
通过burp suite抓包可以得到post的内容 再通过hackbar传参我这个题犯懒了直接在username框里注入了POST类型的题和get题的很大区别是注释符get常用--+的方式post常用#-- (--后面有空格)值得注意的是post不能用--+ (我开始在用--+做的有点蒙,)get中的--+ --是注释+是url中的空格。
2026-02-25 20:04:22
143
原创 sql-lab less 10
原文链接:https://blog.csdn.net/2503_94020569/article/details/158317680。就可以知道是双引号 因为上面的加载慢说明执行了sleep(5)id=1%20"and%20sleep(5)--+这个和上一个几乎没区别 就是单引号变成了双引号。修改下url 和payload部分。我真想复制上一篇less 9。
2026-02-24 19:22:12
28
原创 sql-labs less-9
IF(condition,A,B)如果条件condition为true,则执行语句A,否则执行Bsleep(A) 就是停A秒。
2026-02-23 16:17:58
72
原创 sql-labs less-7
ysql文件读写权限更改方法 默认secure-file-priv 当前的值,显示为NULL查看 secure-file-priv 当前的值MySQL\my.ini文件,在其中加上一句:secure_file_priv="/"写文件路径时推荐使用\\ 因为\t之类的会被转义load_file() 读取本地文件 select load_file('C:\\phpstudy\\PHPTutorial\\WWW\\sqli\\Less-7\\test.txt’);
2026-02-20 17:01:25
365
原创 sql-lab less6
只有类型不一样 这个是双引号 其他地方和5一样。过年歇几天 和朋友保卫超级地球。和5一样的方法就可以了。通过双引号和前面闭合。
2026-02-14 20:09:20
32
原创 sql-lab less5
id=1 回显?id=1' 报错?id=1' order by 3--+ 回显you are?id=1' order by 4--+ 报错 说明字段为3同时知道是布尔盲注通过?id=1' and left((select database()),1)='s'--+ 得到数据库第一位是s借助burpsuite 爆破's'的位置 (1,2,3位次爆破 太多的话要的时间太多0ascii(substr((select database()),1,1))>126--+ 推荐使用2分?
2026-02-12 16:45:18
575
原创 sql-lab less1,2,3,4
查库:select schema_name from information_schema.schemata查表:select table_name from information_schema.tables where table_schema='security'查列:select column_name from information_schema.columns where table_name='users'
2026-02-11 15:51:29
605
原创 RCE-labs-level19
/ 将内容写回文件。再向shell.php 传参v50=system('cat /flag');file_put_contents — 将数据写入文件。注释减少出错 空格用加号 但我试这还不行。在本题中我们可以利用该函数写入一句话木马。我将后面的进行url编码就行了。
2026-02-09 10:11:47
34
原创 RCE-labs-level18
由于环境变量中定义了 echo 函数(我们想方法传入的),Bash 会优先执行该函数,而不是内置的 echo 命令。bash 的固定后缀,是函数环境变量的 “结束标识”,区分普通变量和函数变量。get不行的化就试试post 有点玄学 有的网站上这个题get可以有的不行。当执行 echo hello 时,实际运行的是我们传命令,输出。bash 的固定前缀,标识这个环境变量不是普通变量,而是。命令(用于输出文本的基础命令)
2026-02-08 13:08:07
40
原创 RCE-labs-level17
传入content='cat /flag >3.txt' 再访问/3.txt。通过 shell 执行命令并将完整的输出以字符串的方式返回。也差不多content='cp /flag 1.txt'passthru — 执行外部程序并且显示原始输出。action=r会随机选取函数。得到的函数会和post的content结合执行。system — 执行外部程序,并且显示输出。content='cat /flag'这个函数执行后不会直接显示。都是最基础的命令执行。所以利用重定向的技巧。
2026-02-07 18:28:53
58
原创 RCE-labs-level13
运算符,作用是对整数的二进制补码每一位取反(0 变 1,1 变 0)。可以展开为:$(( -1 -1 )) 即-2。时,Shell 会默认将其解析为。再利用8进制就可以实现命令注入。是算术扩展语法,当它内部。是 Shell 中的。cat /flag就是。
2026-02-05 06:00:00
334
原创 RCE-labs Level 11 12
同时观察过滤发现过滤了1 提示${##} 来替换 1。和上一个很接近就是多过滤了一个0。我们将0也也用其他符号表示。题目中显示可以解析二进制。在线网站可以直接生成。
2026-02-04 09:22:05
430
原创 RCE-labs Level 10
在 URL 中,# 表示锚点(Anchor),它用于指向网页中的特定位置或片段。锚点的主要功能是让浏览器快速定位到页面内的某个部分。刚开始看到ban的是2到9就想都2进制但用在线网站转换后在输入没有反应。后来学习知道#在get具有特殊意义。
2026-01-31 22:49:34
27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅