《渗透测试实践指南:必知必会的工具与方法》-读书笔记(四)基于Web的漏洞利用

Nikto

自动扫描Web服务器上过期的没打补丁的软件,同时也自动检索驻留在服务器上的危险文件。能够识别出很多特定的问题,也能检查出服务器的配置问题。

/pentest/web/nikto

# ./nikto.pl –h target_host –p target_port –o output_file_path

# ./nikto.pl update

 

Websecurify

快速、便捷地对Web漏洞进行识别,包括SQL注入、跨站脚本、文本包含、跨站请求伪造等。

/pentest/web/websecurify/runner

 

WebScarab

与目标Web服务器进行交互的首选工具。

与使用Nikto和WebSecurify完成了漏洞扫描之后,下一个逻辑步骤就是在目标网站上运行网络爬虫程序。网络爬虫是通过审查和读取(或者说是抓取)目标网站来查找所有链接和相关文件非常有用的工具。通过网络爬虫,目标网站的每一个链接、网页和已知文件都会被记录并分类。这些分类数据对于访问受限网页和定位不慎暴露的文件或信息是非常有用的。

/pentest/web/webscarab

# java –jar webscarab

使用:

1.打开WebScarab,Tools –> Use full-featured interface,然后重启

2.将浏览器设为代理模式,127.0.0.1:8008

 

代码注入攻击

解释性语言与编译性语言的不同点在于,解释性语言只有执行之前才会产生机器代码,而编译性语言需要程序员编译源代码并生成可执行文件。当前的Web应用程序大多采用解释性程序设计语言和用于存储信息的后台数据库的架构模式。在如电子商务这样的现代Web应用中,解释性语言的工作就是结合程序员的初始工作和用户的输入,构建一系列可执行语句

SQL注入攻击:

SELECT * FROM users WHERE uname = ‘ ‘ or 1 = 1 – and pwd = ‘bt’

“*”   通配符,它通知SQL返回表中匹配记录的所有列

等号右边的一对单引号是自动加上的,表明查询对象为字符串

‘or 1 = 1 -- ‘   闭合了左边的单引号,使查询语句保持平衡。or 1 = 1使这条查询语句总是“真”,则会返回所有列。--注释之后的代码。

 

XSS

跨站脚本,是一个将脚本程序注入Web应用程序中的过程。

注入的脚本被保存在原有的Web页面中,所有访问该Web页面的浏览器都会运行或者处理这个脚本程序。当注入脚本实际上成为原始代码的一部分时,跨站脚本攻击就发生了。

非持久化的跨站脚本攻击:客户机将恶意脚本发送给易受攻击的服务器,服务器会将一个脚本反射或反弹给用户。在这种情况下,载荷(或者说脚本)立刻就会被执行。这一攻击过程,是在一次响应/请求里发生的。不具有持久性。要想实施攻击,只能通过电子邮件,即时信息等方式将恶意URL发送给用户,因此攻击是在受攻击者的浏览器上执行的。

持久化的跨站脚本攻击:恶意脚本直接保存到易受攻击的服务器上面。由于脚本被保存在服务器上,因此任何访问该Web应用的用户都会触发这个脚本的执行。

 

WebGoat:操练平台

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。