web入侵安全测试与对策
web攻击方式
--------------------------------------------------------------------
获取目标信息
一、筛选
(一)该方式主要包含:
1.html代码嵌入的注释
2.html代码中的敏感信息
3.服务器端的出错信息和http响应
4.应用程序出错信息
(二)攻击方法
在源代码中寻找信息,包括:数据库名称,用户名和密码等。要发现这些信息需要有一个进程用于映射web应用程序框架,并分析源代码。
影射web应用程序的框架
1.工具影射程序页面:wget,blackwindow
2.手工影射网页:从应用程序的第一个页面开始,点每个链接进入到子页面,归纳所访问的页面,直到访问所有的页面为止。web代理程序可以发现页面之间传递的参数和数据,工具有:IEHttpHeaders和Paros之类。
分析源代码
1.映射程序后返回到页面去阅读原代码并搜索HTML注释(通常用2个破折号括起来,如<!--...-->)大部分web设计者都用注释来标记页面中的引导部分,有时这里会包含对攻击者有用的线索。应用编程语言(PHP,ASP,Perl等)的注释方法(如//或*/.../*)有时被漏到客户机上。一些不再使用的旧代码只是被注释而非从代码中删除。
2.除在源文件中手工寻找,还可以自动搜索字符串。工具:grep(Cygwin4是在windows下的免费的类linux环境,集成大部分UNIX平台工具,包括grep),Regulator是一个帮助你创建自己的搜索表达的免费工具。
以下是HTML源代码中搜索的类型和使用grep所采用的表达式模式:
项目 描述 grep模式 HTML注释 大部分HTML注释是平常的引导信息或分页符,但有时候也会包含一些有用的内容 <!--[^
-][\W\w]*?[^-]-->
应用程序注释 应用程序注释在服务器执行代码的时候都应当被去掉,如果留下来一定会包含一些攻击者需
要的信息。
<!---[\w\W]*?--->
//.* 单行注释
/\*[\w\W]*?\*/ C风格的块注释
^'.*
rem\s.* VB的注释
IP地址 源代码中的IP地址都是值得注意的,因为其中可能有除了主服务器以外的服务器的地址(比如数据库服务器或者一个面向群组用户的独立服务器的IP地址)
[0-9]{1,3}\.[0-9]{1,3}\.
[0-9]{1,3}\.[0-9]{1,3}
电子邮件地址 可能是开发人员的私人邮件地址
[\w]*(\.[\w]*)*@[\w]*(\.[\w]*)
SQL查询 在网页的源代码中找到,不仅能反映数据库结构而且可以反映查询的构成方式
SELECT\s[\w\*\)\(\,\s]+\sFROM\s[\w]+UPDATE\s[\w]+sSET\s[\w\,\'\=]+INSERT\sINTO\s[\d\w]+[\s\w\d)
\(\,]*\sVALUES\s\([\d\w\'\,\)]+DELETE\sFROM\s[\d\w\'\=]+
数据库连接字符串 在数据库链接字符串中搜索一般关键字的基本模式,通常因为使用的语言和数据库
中的变量名不同,会造成很多的错误。 Provider\Data\sSource\Driver
隐藏的输入域
<input\s[\w\W]*?type=(")?hidden(")?[\w\W]*?>
3.检查页面之间传递的参数,这些参数能迫使程序产生出错信息。通过把参数修改为超出正常范围或数据类型限制之外的结果可以发现有用信息或得到错误页面。
a.错误的数据库连接造成的信息泄露。
当数据库连接出现ColdFusion脚本无法处理的错误时,出错页面不仅会提示信息,还会把出错点附近的相关代码显示出来。通常服务器会处理<cfinsert>标签,但可能会显示数据库中的表单名称,和数据库名称。利用这些信息可以用于SQL入侵攻击。
b.强行产生语法错误或异常产生大量出错信息。
在某些环境下,如ColdFusion或JavaServerlets,试图通过强行产生语法错误或无法处理的异常来破坏应用程序会使得服务器器响应一系列的函数调用,而这些函数中包含出错的代码段。如:上网登录录,使用错误的用户名返回出错信息,使用错误密码返回另一出错信息,根据2个返回值猜到正确用户名。
(三)防范
1.在产品化的代码中删除注释,只在开发者内部服务器上保留带有注释的版本。
2.尽可能避免泄露出错信息,反馈简介有价值的信息给用户。如:对错误登录信息应当返回“您输入的用户名或密码出错”,让用户知道发生了什么错误,避免攻击者确定是用户名还是密码错误。再如:进行sql查询时发生错误,只让用户知道出错,但不用把具体查询操作返回给用户。
3.将出错信息记录到服务器端的日志文件里。定期扫描日志文件了解用户被应用拒绝的情况。
--------------------------------------------------------------------
二、猜测文件与目录
(一)方式和时段
方式:通过预测文件和目录路径,访问web服务器和应用程序,获取目标系统控制权时间:对目标系统进行映射,仔细分析页面和内容进行之后。
(二)攻击方法
1.查找页面命名转换模式。
通过提交页面文档请求获得文档编号升序或降序排列方式来访问受限页面。
确定模式后,指定搜索样式,通过工具iDefence's session ID auditor搜索所有情况,直达最底层?