华信正平(北京)评测技术有限公司欢迎您的光临! 设为首页 加入收藏

安全测试概述2

四.URL安全测试:
1.MVC下的URL构成:
1).使用Get方式的URL构造方式:
~/控制器名/调用的方法?入参1=参数1&……&入参n=参数n,例如:
http://localhost:10344/AbnormalPunch/ApplySubmit?ID=13244&EmployeeID=1D2DE5AD8BC74E2A9CA70DE3567472EB
可以看到,在不经过处理的情况下,Get方式生成的URL可以看到数据和参数
2).使用Post方式的URL构造方式:、
~/控制器名/调用的方法,入参则放在报文实体主体部分中,例如:http://localhost:12688/Order/OrderList
通过接口测试手段可以获取到访问的入参:
{
    "OrderType": "0",
    "QueryType": "1"
}  
 
URL安全测试主要是基于URL的构成方式进行的测试,很多时候会涉及到和其他方向的交叉;了解各个原理后,就能比较全面的考虑问题了。
2.参数检查:主要就是检查URL或者主体报文中的参数
使用Get方式时,URL中显示的参数正确;敏感参数如用户名、密码不应被显示;
使用Post方式时,敏感参数应该进行加密处理
极端但是比较安全的处理方式是URL只显示网站地址,
3.根据URL的构成方式直接篡改URL:
我们回过头去看这个URL:
http://localhost:10344/AbnormalPunch/ApplySubmit?ID=13244&EmployeeID=1D2DE5AD8BC74E2A9CA70DE3567472EB
这个URL的内容是的查询某个用户提交的某个申请的明细,URL的传入的ID为要查询的申请,EmployeeID是从Session中取的当前登录用户的ID。
那么我们可以基于以下场景篡改URL进行验证:
用户未登录时,直接输入该网址进行访问(涉及到登录验证);
其他用户登录时,输入这个网址(涉及到权限控制)
构造ID和EmployeeID为SQL注入的参数,然后访问(涉及到SQL注入)
以及稍后会涉及到的XSS、Session、Cookie等场景。
 
五.XSS
跨站脚本攻击(Cross Site Scripting),为了和层叠样式表css区分,简写为XSS。
1.原理
攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。
例:
存在一个文本控件,其中value1from来自用户的输入:

直接输入 "/>
也可以将内容放到URL中进行访问:
http://localhost:10344/AbnormalPunch/ApplySubmit?ID=

七. URL跳转漏洞
1.实现原理:
服务端未对传入的跳转URL变量进行检查和控制,可能导致可恶意构造任意一个恶意地址,诱导用户跳转到恶意网站。
一般来说,URL跳转的测试方法为修改参数中的合法URL为非法URL,然后查看是否能正常跳转或者响应包是否包含了任意的构造URL。
2.测试方法:
修改参数中的合法URL为非法URL,然后查看是否能正常跳转或者响应包是否包含了任意的构造URL 
 
八.其他安全角度的考量
1.安装包测试:对C/S端的程序,安装包主要考虑反编译、签名、完整性、权限等
2.数据库:对于数据库中的敏感字段,如用户名、密码等应该进行加密处理后再存储;Cookie等敏感信息也要考虑设置过期时间等;
3.日志、配置文件中尽量不要包含敏感信息
4.账户安全:数据库中的密码加密存储,传输的密码加密,密码多次输入错误后进行锁定,多设备登录的处理、注销后的身份验证等
5.结合实际版本需要的考量:比如一款电商APP,提交订单接口时传入了订单信息和订单总金额,支付接口根据提交订单接口传入的总金额进行支付;问题在于支付接口完全信任了订单金额没有做验证,那么可以直接调用订单接口伪造金额从而以便宜的价格购物。