web安全——分析应用程序
文章目录
- 一、确定用户输入入口点
- 二、确定服务端技术
- 三、解析受攻击面
一、确定用户输入入口点
在检查枚举应用程序功能时生成的HTTP请求的过程中,用户输入入口点包括:
- URL文件路径
通常,在查询字符?
之前的URL部分并不视为用户输入入口,但在REST风格的URL中,查询字符之前的URL部分实际上可作为数据参数。例如:
其中的http://eis/shop/browse/electronics/iphone
electronics
和iphone
应该被视为数据参数。 - 请求参数
多数情况下,在URL查询字符串、消息主体和HTTP cookie中提交的参数都是明显的用户输入。但是,这些参数可能不使用标准的name=value
格式,而是使用定制方案。如:/dir/file;foo=bar&foo2=bar2;
- HTTP请求头
需要应用程序执行定制的日志功能,并可能记录HTTP请求头(如Referer
和User-Agent
)的内容。
二、确定服务端技术
- 文件扩展名
asp——Microsoft Active Server Page aspx——Microsoft ASP.NET jsp——java Server Page php——php语言 ...
- 目录名称
servlet——java servlet pls—— Oracle Aplication Server PL/SQL网关
- 会话令牌
JSESSIONID——java平台 ASPSESSIONID——Microsoft IIS服务器 ASP.NET——SessionId——Microsoft ASP.NET PHPSESSID——PHP
三、解析受攻击面
1.客户端确认——服务器没有采用确认检查
2.数据库交互——SQL注入
3.文件上传于下载——路径遍历漏洞、存储型XSS、文件上传漏洞
4.显示用户提交的数据——XSS
5.动态重定向——重定向与消息头注入攻击
6.社交网络功能——用户枚举、存储型XSS
7.登录——用户枚举、弱口令、暴力破解
8.多阶段登录——逻辑漏洞、验证绕过
9.会话状态——猜测令牌、令牌处理不安全
10.访问控制——垂直越权和水平越权
11.明文通信——会话劫持、敏感信息泄露
12.站外链接——Referer消息头中查询字符串参数泄露
13.错误信息——信息泄露
14.电子邮件交互——电子邮件与命令注入
15.本地代码1组件或交互——缓冲区溢出
16.使用第三方插件——已知漏洞