Loading...

随笔

[!tip]
“人类,永远是机器最脆弱的部分。
——Anemone”

项目工具

onile:

https://www.shodan.io/
https://dnsdumpster.com/
用 Shodan、DNSDumpster 进行公开资料分析 ,使用 Nmap 探测 5000 端口服务(当然远不止这些,还有很多。)

过程

这是一个渗透思路整理,记录了如何对一些漏洞风险较高的网站进行渗透。本次我我们以一个内部提供的网站为例子。在不依靠源码的情况下进行一次渗透。

http://172.0.0.1:5000/static/login.html 这是我们本次的目标,

在访问目标,我们可以看见到一个简单的登录界面(为避免某些原因,图片均网络收索)

![[Pasted image 20260404014231.png]]

在这个页面中我们随便填入一些内容,观察返回:
![[Pasted image 20260404014453.png]]
我们可以看到,输出了以下信息:

Request Call Stack(请求调用堆栈)

  • 一:(anonymous) @ login.html:254

    • login.html 的第 254 行运行了某函数。我们可以点击跳转到细则进行观察:
1
2
3
4
5
-  fetch(`${SERVER_URL}/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
})

可以看到,目标使用了浏览器原生的 fetch API。
同时 headers 指定了 application/json,并通过 JSON.stringify 转换对象。这说明后端(Flask)很可能使用了 request.get_json() 来解析数据。
虽然前端通过 JSON.stringify 封装数据 ,但这并不意味着 SQL 注入失效。在后端解析 JSON 后,可以直接将变量拼接进 SQL 查询语句中(例如使用 f-string),注入风险依然存在。本次实验中,控制台泄露的 COALESCE 等函数正是后端直接执行原始 SQL 的证据。”

  • **二:i.trigger @ mui.min.js:6

    • 框架介入: mui.min.js 表面这个网站使用的 UI 框架是mui。当点击按钮时,mui 框架捕获了你的点击事件(Tap),并经过一系列内部逻辑处理(具体是什么,我们不确定。这是后端的黑箱。)
  • 三:z @ mui.min.js:6

    • 发出请求: 框架完成了最后的封装,正式命令浏览器把数据发往服务器。

根据这个信息,我们可以放弃使用sql语句,或是绝对逻辑,知道对方是json数据,并使用mui。

之后我们利用关键字寻找目录文件
http://172.0.0.1:5000/xxx/xxx.xxx

运气好我们可以直接通过我们自己的提示词找到自己想要的东西,之后就可以退出了。如果你运气不好,一个都没有找到。或者是无法访问。那么就需要越权了。

身份认证绕过

任然是观察前端代码,寻找其中的漏洞。多看script。其中可以发现许多有趣的东西。

在 Console 注入代码修改 localStorage,利用前端逻辑漏洞实现越权
是的,很简单。

不想展开。

Author: Miss Anemone
Link: https://anemone.dpdns.org/2026/04/10/%E6%BC%8F%E6%B4%9E%E6%8E%A2%E7%B4%A2/
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Announcement
At Charing Cross, we were like two lines detoured by time, finally converging at the same point.