百度貼吧防吞新招論

2017-05-30 01:49:23 -0400

作者:天珩

《百度貼吧防吞新招論》
先從歷史說起,那時的百度貼吧專業幹兩件事:屏蔽違禁詞、繁體轉簡體。甚至有的時候還可以轉錯。
繁體字本可以通過各種js的方法去發送,而違禁詞的性質當然一樣,畢竟都是字符。
另外由於UTF16中的輔助平面的字符會被砍頭(舉例:U+10026發出去後會變成U+0026),所以後來又出來一個比js更管用的方法,叫做高位轉碼。基本平面的字符(常用的繁體字一般都屬於這裏)可以在前面加個1,而輔助平面的字可以用轉義。砍頭之後的字符不會重新被檢測違禁或者繁簡轉換。
說起轉義,那是一個很常用的手段,可以在GBK等格式的htm裏面弄出GBK等以外的字,格式是&#x加上16進制Unicode碼加上;,或者用10進制也可以,把x去掉。貼吧也沒那麼傻,&的作用真的太多了,甚至可以用來寫各種代碼,所以他們檢測到&後會變成&,而&這個轉義的意思就是&這個字符。
這樣一看,轉義是用不了了,但是如果把&(U+0026)變成U+10026就可以用砍頭方式來實現。
直到有一天,也許是因為有人提出了砍頭之bug,貼吧修復了這個問題,順便繁簡轉換也不存在了。而且PUA那段都不能發出去了。(其實不止PUA,XE000-XF8FF都會這樣,所以擴展F從2E000開始就發不出這是一個道理)
既然X0026不會變成0026,那麼高位轉碼就不行了。而同時js都已經無效,因為js的原理就是找到貼吧的漏洞而見縫插針,貼吧在這段時間內完全修復了漏洞。本人曾在代碼吧問過有沒有新的js,一直沒回復。
其實貼吧在修復這個bug的同時還有一個多出來的bug,不知是否故意所為。這個bug的內容如下做出解釋。
凡是Unicode為X43B1的字符都會被吞,比如343B1、143B1等。而在這之後的砍頭仍存在。換句話說如果單獨用10026則是10026,而若在143B1後加10026,那麼結果是143B1被吞加上10026被砍頭,又得到0026了。這無疑是一個好方法去發送PUA和違禁詞。當然我們研究的目的不是違禁詞,最主要還是擴展F被吞的那段。
另外要注意,在樓中樓發的時候轉義可能會被識別到而單獨拎出來,這時候要在回復內容前加<span>,在回復內容後加</span>。
這兩個span標籤也是要用高位轉碼的,不然發出去就變成普通文本而非代碼了。
最後,這種新的防吞方法也有很多人有需要,因此我希望大家可以順手轉發。不會手動轉碼的可以去高位轉碼網站,網址如下。

点我

«Newer      Older»

----Comments(1)----
大坏蛋的小站 (@1332665493) | @ at 2017-05-30 05:02:
看不懂繁体字,蛋疼
Comment:
Name:



Back to home


Subscribe | Register | Login | N