挖洞日记1--一次有意思的信息泄露
开始挖洞也有好几天了,虽说没啥成绩,但是也学到了一些东西,感悟到了不少挖洞过程中遇到了个有意思的利用过程,借此来聊一下
前言起初是因为喜欢偏向实战一些,早些天就开始学习起了挖洞,小目标想挖本cnvd证书我知道它很难挖,但是没想到这么折磨,虽然挖的时间并不长,却也切身感受到面对庞大互联网资产时无从下手的痛苦
最开始我按着主流观点挖掘通用型漏洞多些,尝试着挖通杀洞,而目前cnvd只收资产大于5000万的企业的10起以上案例的漏洞才会给证书
所以有一说一是真的难挖,挖了几天感觉毫无头绪,直接run去碰碰运气事件型有没有搞头(三大运营商或政府机关等平台的中高危漏洞)你别说,单一顺着一个企业挖思路确实清晰一些,也是在中国联通的某平台挖到个有意思的漏洞
过程既然是挖事件型,先试着从三大运营商入手,随便找一个然后正常的做信息收集
挖到的目标是中国联通的某智慧城市平台
发现是类似于一个小的监控平台,像是一个未授权访问,不过重点不是这个
放到扫描器进行扫描目录和api等,发现一个js.map的文件泄露,而对于我来说,也是第一次遇见这样的文件,通过搜索得知
12js.map 文件是 JavaScript ...
web安全-VM沙箱逃逸
详解: https://xz.aliyun.com/t/11859?time__1311=mqmx0DBD9DyDuBYD%2FQbiQQdO70ttD%3DY4D&alichlgref=https%3A%2F%2Fcn.bing.com%2F
vm逃逸最重要的就是一个作用域的问题,如何逃离vm创建的作用域,逃离到global去,然后获取到process对象,进而用process去引用require命令执行
1.一些vm模块用法1234567891011const util = require('util');const vm = require('vm');const sandbox = {animal: 'cat',count: 2};const script = new vm.Script('count += 1; name = "kitty";');const context = vm.createContext(sandbox);script.run ...
web安全-Flask sessions伪造
客户端 Session一般情况下,在 PHP 开发中,$_SESSION 变量的内容默认会被保存在服务端的一个文件中,并使用一个叫 PHPSESSID 的 Cookie 的值来区分不同用户的 session。由于这类 Session 的内容存储在服务端,所以这类 Session 是 “服务端 Session”,而用户在 Cookie 中看到的只是 Session 的名称(一个随机字符串)。
然而,并不是所有语言都有默认的 Session 存储机制,也不是任何情况下我们都可以向服务器写入文件。比如对于 Flask 框架,就将 Session 存储在了客户端的 Cookie 中。
因为 Cookie 实际上是存储在客户端(浏览器)中的,所以这类 Session 被称为 “客户端 Session”。而将 Session 存储在客户端 Cookie 中,最重要的就是解决 Session 不能被篡改的问题。
Flask 对 Session 的处理机制的主要过程如下:
json.dumps 将对象转换成 json 字符串,作为数据
如果数据压缩后长度更短,则用 zlib 库进行压缩
将数据进行 ...
新周记6
总结:
https://hades-blog.github.io/2024/03/01/%E7%9F%A5%E8%AF%86%E7%82%B9%E6%80%BB%E7%BB%93-web%E5%AE%89%E5%85%A8-Nodejs%E7%89%B9%E6%80%A7%E5%88%A9%E7%94%A8/
https://hades-blog.github.io/2024/03/01/%E7%9F%A5%E8%AF%86%E7%82%B9%E6%80%BB%E7%BB%93-web%E5%AE%89%E5%85%A8-Nodejs%E5%8E%9F%E5%9E%8B%E9%93%BE%E6%B1%A1%E6%9F%93/
https://hades-blog.github.io/2024/03/02/%E7%9F%A5%E8%AF%86%E7%82%B9%E6%80%BB%E7%BB%93-web%E5%AE%89%E5%85%A8-URLDNS%E9%93%BE/
web安全-Nodejs原型链污染
漏洞点:
12345678910111213141516171819function merge(target, source) { for (let key in source) { if (key in source && key in target) { // 如果target与source有相同的键名,则让target的键值为source的键值 merge(target[key], source[key]); } else { // 如果target与source没有相同的键名,则直接在target新建键名并赋给键值 target[key] = source[key]; } }}let o1 = {};let o2 = JSON.parse('{ "a": 1, "__pro ...
web安全-Nodejs特性利用
1.nodejs 语言的缺点大小写特性toUpperCase()
toLowerCase()
对于 toUpperCase(): 字符 "ı"、"ſ" 经过 toUpperCase 处理后结果为 "I"、"S"对于 toLowerCase(): 字符 "K" 经过 toLowerCase 处理后结果为 "k"(这个 K 不是 K)
2.弱类型比较
大小比较
123456console.log(1=='1'); //true console.log(1'2'); //false console.log('1'<'2'); //true console.log(111'3'); //true console.log('111''3'); //false console.log('asd'1); //fals ...