看好你的门-客户端传数据(8)-不安全的HTML表单限制
2015-03-06 17:05
253 查看
首先需要声明,本文纯属一个毫无远见和真才实学的小小开发人员的愚昧见解,仅供用于web系统安全方面的参考。
开发人员需要对系统进行修改和调整。
让我们脑补一下,传统行业搞互联网电商的场景:
产品经理:赶快改,赶快上,赶快搞活动
运维经理:版本升级,提交上线评估报告,风险测试报告,系统测试报告,各位负责领导签字文件;
开发人员A:靠,老子一早从9点干到晚上9点,还要老子去写那么多报告,让我想想有那么好办法…
开发人员B:我们把验证放在HTML页面吧,直接用html的长度限制,这样就不用重启服务,也不算版本升级
开发经理:人才呀,就这样干
… (使用长度限制)
测试人员:测试好了,一个人只能买0-9个鸡蛋,输入10或者其他超过9的数据都被限制了;
开发经理:提交上线
…
只能输入一个字符,我也试过,确实如此呢。
1、 利用拦截提交的表单,在中间输入任意数字。 最简单实用;
2、 去掉页面中的maxlength=”1”限制,这种方法通俗易懂。比如用chrome浏览器,点击“审查元素”,找到maxlength=”1”,然后修改属性,去掉maxlength=”1”。然后刷新下页面。你回发现,你无论输入多长的数字都可以…. 不知道购买100万个鸡蛋,是不是会让这个公司破产……
2、 如果服务端接收了这个数据,那么可以推断出服务器没有采取客户端确认的机制;
3、 利用这个机制并发现是否存在其他的漏洞和缺陷
1、 简单说明
先说故事,某一天产品经理策划了一个方案,要搞一个促销。一个用户最多可以买9个鸡蛋。一个鸡蛋一分钱,好事情。开发人员需要对系统进行修改和调整。
让我们脑补一下,传统行业搞互联网电商的场景:
产品经理:赶快改,赶快上,赶快搞活动
运维经理:版本升级,提交上线评估报告,风险测试报告,系统测试报告,各位负责领导签字文件;
开发人员A:靠,老子一早从9点干到晚上9点,还要老子去写那么多报告,让我想想有那么好办法…
开发人员B:我们把验证放在HTML页面吧,直接用html的长度限制,这样就不用重启服务,也不算版本升级
开发经理:人才呀,就这样干
… (使用长度限制)
测试人员:测试好了,一个人只能买0-9个鸡蛋,输入10或者其他超过9的数据都被限制了;
开发经理:提交上线
…
2、 在HTML表单进行长度限制的例子
[code] <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>看好你的门-阿饭同学 </title> </head> <body> <form action="aShopPrice.action" method="post" name="form1"> 商品:鸡蛋 <br> 价格:0.01元 <br> 数量(每人最多购买9个):<input type="text" name="quantity" maxlength="1" /> <br> <input type="submit" value="确认购买" /> </form> </body> </html>
只能输入一个字符,我也试过,确实如此呢。
3、 被攻击
要攻击这种情况,非常的轻松。1、 利用拦截提交的表单,在中间输入任意数字。 最简单实用;
2、 去掉页面中的maxlength=”1”限制,这种方法通俗易懂。比如用chrome浏览器,点击“审查元素”,找到maxlength=”1”,然后修改属性,去掉maxlength=”1”。然后刷新下页面。你回发现,你无论输入多长的数字都可以…. 不知道购买100万个鸡蛋,是不是会让这个公司破产……
4、 反思中的观察和步骤
1、 如果页面中采用了maxlength或者其他的类似的限制,那么提交大于这个长度但是格式合法的数据;2、 如果服务端接收了这个数据,那么可以推断出服务器没有采取客户端确认的机制;
3、 利用这个机制并发现是否存在其他的漏洞和缺陷
相关文章推荐
- 看好你的门-客户端传数据(10)-不安全的HTML禁用元素
- 看好你的门-客户端传数据(9)-不安全的js脚本限制
- 看好你的门-客户端传数据(1)-不安全的隐藏表单字段
- 看好你的门-客户端传数据(10)-不安全的HTML禁用元素
- 看好你的门-客户端传数据(2)-不安全的URL参数
- 看好你的门-客户端传数据(3)-不安全的http信息头
- 看好你的门-客户端传数据(7)-不安全的固定加密
- html表单对输入数据的几种限制的绕过
- 看好你的门-客户端传数据(6)-不安全的cookie
- html 表单设计时对输入文本数据类型的限制
- 将HTML表单数据存储为XML格式
- 客户端限制表单重复提交
- 在JSP客户端限制表单重复提交
- 把HTML表单提交的数据转化成XML文件的补充
- 把HTML表单提交的数据转化成XML文件
- 在jsp客户端限制表单重复提交
- 将html的form表单数据存入Oracle
- datagrid数据导出到excel文件给客户端下载的几种方法 (xls,csv,html)
- datagrid数据导出到excel文件给客户端下载的几种方法 (xls,csv,html)
- 将HTML表单数据存储为XML格式- -