SQL注入攻击
今天来检测了一下某大学的招生网站。对于入侵一个网站,首先想到的是用SQL注入对目标网站进行检测。先在百度里面输入site:xxx.xxxx.net.cn/zs/index.asp查看网站的所有页面。在丢到啊D里面看看先
,米有什么发现。
还是丢给JSky吧,让它将这个网站的网络层结构先给爬出来,看看这个网站里面有那些页面结构。然后通过JSky自带的检测注入点功能对网站进行检测。
在SQL injection后面的连接就是存在问题的连接,也就是我们的注入点。我们用穿山甲对这个注入点进行分析。得到网站管理员的帐号和密码。
密码是进过md5加密过的,我们到
http://www.cmd5.com/default.aspx对它进行破解。得到管理员密码。通过上传得到一个webshell。
上面就是得到的一个webshell
上传一个提权工具,执行cmd命令。
net user help$ 123456 /add
net localgroup administrators help$ /add
为自己添加管理员帐号。
用远程桌面连接服务器,输入刚才的帐号和密码,登入到服务器。
修补
登入到服务器以后,先找到刚才通过注入得到网站管理员帐号密码的网站为网站加上防注入系统,i也就是在数据库连接文件中加上这样的代码。(加了防注入以后,基本上可以让一般像我们这样的小菜鸟手工回家了~~ )
<%
Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr
’’’’自定义需要过滤的字串,用 "防" 分隔
Fy_In = "’’’’防;防and防exec防insert防select防delete防update防count防*防%防chr防mid防master防truncate防char防declare防<防>防=防|防-防_"
Fy_Inf = split(Fy_In,"防")
If Request.Form<>"" Then
For Each Fy_Post In Request.Form
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert(’’’’网长友情提示黑客大侠↓请不要在参数中包含非法字符尝试注入攻击本站,’’’’);</Script>"
Response.Write "真是不可思议!您好像走错门了?!<br>"
Response.End
End If
Next
Next
End If
If Request.QueryString<>"" Then
For Each Fy_Get In Request.QueryString
For Fy_Xh=0 To Ubound(Fy_Inf)
If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then
Response.Write "<Script Language=JavaScript>alert(’’’’网长友情提示黑客大侠↓请不要在参数中包含非法字符尝试注入攻击本站,本站做起来很不容易的’’’’);</Script>"
Response.Write "真是不可思议!您好像走错门了?!<br>"
Response.End
End If
Next
Next
End If
%>
将上面这段代码加到网站的数据库连接文件中,就可以实现对网站非法参数的过滤。
当我再测试在该网站测试注入的时候,就会出现下面的现象。这样可以有效的避免注入对网站照成的危害。
删除Inetpub目录
因为Inetpub文件夹对于网络帐号来说,它是可写,可读的一个目录。这样就可以避免黑客对这个文件夹的利用。
当然我们也可以用网马来检测一下,那些目录是可以用来读写的。然后在对其权限进行修改。
系统盘及所有磁盘只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Documents and Settings 目录只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Documents and Settings\All Users 目录只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Inetpub 目录及下面所有目录、文件只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘\Windows\System32\cacls.exe、cmd.exe、net.exe、net1.exe 文件只给 Administrators 组和 SYSTEM 的完全控制权限。
系统盘文件的读取,修改,执行权限只分配给Administrators 组和 SYSTEM组。
禁用FileSyetemObject组件
在cmd下进入C:\WINDOWS\system32 目录输入 regsver32 scrrun.dll /u
关闭SQL中XP_CMDSHELL:打开企业管理器→数据库→master→扩展存储过程→XP_CMDSHELL然后点击右键删除!
但是我记得sql的xp_cmdshell删除了以后,是可以用工具进行恢复的。可是不知道有没有什么办法能把这个问题给彻底解决。
因为这样服务器以前被人入侵过,并且他对该服务器的管理员帐号进行了克隆。所以要把克隆了的管理员帐号给删除。
下载360对服务器的系统漏洞进行修补。
清楚服务器上的系统日志(再被管理员叔叔抓到,估计又要被他抓到网络办当苦力了~~~)
闪人~~