压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

access防下載表原理

  一、開(kāi)篇

  自從搞ASP+ACCESS沒(méi)少為避免數(shù)據(jù)庫(kù)下載而傷過(guò)神,網(wǎng)上的奇淫技巧更是數(shù)不勝數(shù),本文就是同大家共同探討各路前輩的留下的秘笈并指中其中的優(yōu)劣,最后為大家提供一種最佳的解決方案

  二、剖析

  為了防止ACESS數(shù)據(jù)庫(kù)下載,小的見(jiàn)過(guò)不少方法,主要有以下幾種:

  1、數(shù)據(jù)庫(kù)加密——–這個(gè)自然不用說(shuō)了,別人如果知道數(shù)據(jù)庫(kù)路徑,照樣能下載,打開(kāi)數(shù)據(jù)庫(kù)其實(shí)也很簡(jiǎn)單,網(wǎng)上破解ACCESS數(shù)據(jù)庫(kù)的密碼軟件太多了,以前我也有所研究,97版的ACCESS的密碼是從文件的開(kāi)頭第73(如果這個(gè)數(shù)字沒(méi)記錯(cuò)的話)個(gè)字符開(kāi)始連續(xù)的十多個(gè),這個(gè)是密碼與已知的一串字符異和的結(jié)果,2000版的ACCESS變聰明了一些它的加密后的密碼不是連續(xù)是間隔的不過(guò)加密密鑰還是一樣的,由于是對(duì)稱加密所以破解ACCESS簡(jiǎn)直易如反掌(呵呵,好像跑題了)

  2、數(shù)據(jù)庫(kù)文件名更名——–這個(gè)用的比較多,主要是用到了HTML的錨點(diǎn),將數(shù)據(jù)庫(kù)的文件名中加入“#”,如果直接敲入數(shù)據(jù)庫(kù)的路徑試圖下載的話,由于瀏覽器只解析到了#前面一大串URL,#后被認(rèn)為是錨點(diǎn)標(biāo)記,數(shù)據(jù)路徑被保護(hù)起來(lái)了。剛看到這種方法時(shí),俺確實(shí)得佩服最初發(fā)現(xiàn)這個(gè)方法的N人。可惜沒(méi)多久,在網(wǎng)上看到了另一篇文章對(duì)此方法的破解,原理很簡(jiǎn)單,字符“#”被URL解析后的字符應(yīng)該是“%35”,這就是我們?cè)诘刂窓诶锝?jīng)常看到%20樣的東西,其實(shí)是空格,由于進(jìn)行了URL編碼所以解析成了%20(20是因?yàn)榭崭竦腁SC碼值為20)

  3、數(shù)據(jù)庫(kù)擴(kuò)展名更名——–這個(gè)用的太普遍了,擴(kuò)展名一般改成.ASP,因?yàn)閿U(kuò)展名為。ASP文件都要交給ASP。DLL文件解釋執(zhí)行,ASP。DLL只會(huì)解釋在之間的代碼(還有,其它的一概不管,原封不動(dòng)地交給瀏覽器處理,所以直接把擴(kuò)展名改為ASP后,數(shù)據(jù)不會(huì)被下載,但是會(huì)被瀏覽器直接打開(kāi).這樣別人將內(nèi)容拷貝后仍然可以還原成原始的MDB文件。

  三、解決

  大家應(yīng)該比較了解動(dòng)網(wǎng)論壇,他的數(shù)據(jù)庫(kù)里有一個(gè)NotDown的表,這個(gè)表只有一個(gè)字段,并且這個(gè)字段的類(lèi)型是OLE型,用于存放二進(jìn)制的數(shù)據(jù),這個(gè)表有什么作用呢?呵呵…

  把動(dòng)網(wǎng)的數(shù)據(jù)庫(kù)擴(kuò)展名改成ASP,然后在瀏覽器里輸入對(duì)應(yīng)路徑的數(shù)據(jù)庫(kù)地址,看到什么了?一串錯(cuò)誤的ASP腳本錯(cuò)誤的信息,當(dāng)然數(shù)據(jù)庫(kù)也沒(méi)辦法DOWN下來(lái)了,為什么會(huì)這樣呢,那個(gè)NotDown表究竟存放的是什么呢??

  大家好好看看第二節(jié)中的第3種方法,仔細(xì)琢磨一下應(yīng)該不難明白結(jié)論,正是因?yàn)镹otDown表是有類(lèi)似這樣的腳本致使ASP.DLL把它當(dāng)作真正的ASP文件來(lái)執(zhí)行,但是這恰恰是動(dòng)網(wǎng)數(shù)據(jù)庫(kù)故意安排的語(yǔ)法錯(cuò)誤,致使ASP.DLL解釋里出錯(cuò),因而把ASP出錯(cuò)信息顯示出來(lái),從而保護(hù)了真正的數(shù)據(jù).

  四、實(shí)踐

  NotDown表中倒底寫(xiě)了些什么呢??呵呵,是不是有點(diǎn)急了.

  我們知道NotDown表由于是二進(jìn)制字段,所有我們讀寫(xiě)數(shù)據(jù)庫(kù)的時(shí)候,也要改一改常規(guī),ADO中專門(mén)有讀寫(xiě)二進(jìn)制字段的方法它們分別是AppendChunk 和GetChunk 有了這兩個(gè)方法我們就可以看看那個(gè)表里面究竟是啥玩意了

  ——此處省略連接數(shù)據(jù)200字,得到數(shù)據(jù)連接對(duì)象Conn

  set rs=server.createobject("adodb.recordset"

  sql="select notdown from NotDown"

  rs.open sql,0,1

  data=rs(0).GetChunk(rs(0).ActualSize) 讀出所有的二進(jìn)制數(shù)據(jù)

  rs.close

  set rs=nothing

  —-關(guān)閉數(shù)據(jù)庫(kù)連接

  response.BinaryWrite(data)由于data是二進(jìn)制,所以要調(diào)用response打印二進(jìn)制的方法將其輸出

  %>

  過(guò)足癮了吧,想知道結(jié)果是什么嗎,趕緊回去調(diào)試看看啊

  五、改進(jìn)

  上面的方法雖然是保住了數(shù)據(jù)庫(kù),但是有個(gè)錯(cuò)誤的提示,總是覺(jué)得有點(diǎn)不爽,我們來(lái)改點(diǎn)別的

  如果試圖輸入數(shù)據(jù)庫(kù)的地址來(lái)下載數(shù)據(jù)庫(kù),將會(huì)自動(dòng)跳轉(zhuǎn)到搜狐網(wǎng)站,代碼如下

  ——此處省略連接數(shù)據(jù)200字,得到數(shù)據(jù)連接對(duì)象Conn

  set rs=server.createobject("adodb.recordset")

  sql="select notdown from NotDown"

  str="http://www.sohu.com"""&chr(37)&">"

  由于字段是二進(jìn)制數(shù)據(jù),我們要是直接把Str字符串字入數(shù)據(jù)庫(kù)的話會(huì)有一點(diǎn)問(wèn)題

  在VBS中每一個(gè)字符占兩個(gè)字節(jié),所以我們要去掉高位的空字節(jié)

  for i=1 to lenb(str)

  if midb(str,1,i)0 then

  data=data+ascb(midb(str,1,i))

  end if

  next

  rs.open sql,0,3

  data=rs(0).AppendChunk(data) 寫(xiě)入二進(jìn)制數(shù)據(jù)

  rs.update

  rs.close

  set rs=nothing

  %>

  OK了,看看運(yùn)行效果,甚至還可以加入一段JS腳本,彈出一個(gè)對(duì)話框,嚇嚇那些下載數(shù)據(jù)庫(kù)的小貓們,還不趕快試試去

 

上一篇:安卓防火墻 PS DroidWall

下一篇:注入點(diǎn)配合eWebeditor上傳Shell