程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 本地SQL注射攻略分析曝光

本地SQL注射攻略分析曝光

編輯:更多數據庫知識

何為本地注射?簡單地講,就是本來你在服務器上無法進行SQL注入,因為服務器上的WEB程序很安全,對request("id")這樣的請求過濾很嚴,或是限制輸入格式為數字等等方法,你只能選擇放棄放棄注入。

但是在有的時候,你可以在本機的IIS裡進行注入,從而達到對服務器注射的目的,避過服務器的request參數提交過濾。舉例子來說明吧,現在你誤打誤撞,利用暴庫或是其他的漏洞,得到了服務器的conn.asp文件,那麼恭喜你,入侵離成功不遠了。

conn.asp文件代碼一般如下:

<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=61.121.140.37;UID=admin;pwd=12345;DATABASE=master"
%>

這裡面記錄的就是服務器的數據庫的一些信息了,一般也會得到連接密碼,說明是MSSQL的系統,非常好搞。如果服務器有URL可以進行SQL語句注射的話,恢復下XP_CMDshell,我們就能執行很多命令了,DOS命令也隨便你。但是很可惜,我們不能注射,只有這麼一個conn.asp文件可以利用。

那麼,我們在本機來欺騙服務器,不過你要知道那個服務器采用的是什麼web程序,不然你下面就不好寫代碼,我們來寫一個sqltest.asp文件,在其中不做任何過濾,將這個文件和conn.asp一起放到你的IIS中的wwwroot下面,這樣你就能通過Localhost來訪問啦。

sqltest.asp代碼如下:

<!--#include file="conn.asp"-->
<%
dim rs,strSQL,id
set rs=server.createobject("ADODB.recordset")
id = request("id")
strSQL ="select * from DVBBSmdb where GuestID=" & id
rs.open strSQL,conn,1,3
rs.close
%>

那個DVBBSmdb是我虛構的,大家要改成這個web程序的數據庫的庫名。看到沒有,id的提交參數沒有經過任何的過濾,沒有用replace或是其他的函數。現在我們在啊D中輸入注射URL:http://localhost/sqltest.asp?id=1。接著用啊D在本地服務器執行命令或是跑用戶名和密碼,就等同於在你要入侵的服務器上進行注射,繞過了它的防注入措施。

這就是本地欺騙注射,明白了吧?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved