CDN 負載均衡、內容分發


解析漏洞一般在服務層 二進制,溢出,提權在系統層 滲透測試就是以上全部層

協議未正確解析
GET改POST 這叫參數污染
cookie 改一個較大的值 有的waf承受不了這么大的值,參數污染
HTTP參數污染 HPP參數污染 使用多個無用值或者重復值提交到數據包中達到攻擊
提交兩個filename值,這要看具體什么服務器,兩個一樣的參數是哪一個參數生效


waf有正則匹配攔截,我們要找到攔截點在哪里。繞過waf就是在繞過寫好的正則。
單雙引號,不加引號,后綴,各種嘗試繞過
正則的核心在匹配filename后面的值,思路是讓它找不到匹配點。

直接繞過

SQL注入


union select 1,2,3 只要不報錯可以繼續往后加 union select 's','s','s' 字母也可以

表里沒有3條數據,這時個時候查詢 id=3;返回空值。所以要用union select聯合查詢查到報錯來摸清數據庫里面有多少條數據。

如果前面id=-1這里的條件不符合,它就返回后面的union select數據了,利用這個唯一的返回結果就可以加自己的東西來回顯了。

可以調用數據庫的全局變量




查看數據庫名


在數據庫里面可以返回三條,但在頁面中不會顯示三條的。使用limit

limit 0,1 從0開始取一條,返回一條


查詢這個表來看當前用戶的權限是什么







只要字典強大就可以獲得當前數據庫的用戶名


聚合函數,當前表里有多少記錄就返回多少

統計列數

這個表是存在的,窮舉表

窮舉字段

布爾值盲注 age字段18的值,拿第一個字符,返回1,以下為嵌套函數。





數字,字母窮舉都可以,單引號被過濾就必須用到ASCII碼了。

時間盲注

這個函數直接就解析了


過狗

and int = int就會攔截 and 字符 = 字母就不會攔截 字符串 = 函數 是不攔截的

union 和 select 在一起的時候才會攔截 用大小寫,URL編碼等嘗試

注釋繞過


寫個腳本測試payload,waf的正則匹配的東西太多了,用腳本跑到沒有被攔截到的點
id=2 UNION/**/SELECT 1,2,3 把空格用SQL注釋符號替換的思路,廠家也清楚,/**/里面加東西,或者用SQL不會執行的特性來繞過他們編寫的正則匹配規則,將是重要的測試點。
學語言寫腳本,這里就需要用上了。 大致叫做 Fuzz 模糊測試 繞過waf PKAV團隊應該有一個這個軟件
這里推薦一篇腳本的參考資料:https://blog.csdn.net/JBlock/article/details/88617906


