黑客攻防技术宝典web实战篇:攻击应用程序逻辑习题

猫宁!!!

参考链接:http://www.ituring.com.cn/book/885

 

随书答案。

1. 何为强制浏览?可以通过它确定哪些漏洞?


强制浏览包括避开浏览器导航对应用程序功能访问顺序实施的任何限制。应
使用强制浏览测试多阶段过程或其他区域中的错误假设。通常,这些假设会导致
可以通过使用强制浏览加以利用的访问控制漏洞。


2. 为防止不同类型的攻击,应用程序对用户输入实施各种全局过滤。为防止 SQL
注入,它将出现在用户输入中的单引号配对。为防止针对一些本地代码组件的缓
冲区溢出攻击,它将超长的数据截短到适当的长度。这些过滤有什么问题?


如果在实施长度限制之前将引号配对,则通过在配对的两个引号之间截短输
入,就可以在输入中引入奇数单引号(请参阅第 9 章了解详情)。
如果在配对之前应用长度限制,仍然可以通过在有效载荷的开头插入大量单引
号,使该有效载荷充分放大,并使用位于有效载荷末尾的专门设计的数据来溢出
缓冲区,从而达到利用任何缓冲区溢出条件的目的。


3. 可以采取哪些步骤来探查某登录功能中是否存在故障开放条件?(列出想到
的各种不同测试。)


应使用所控制帐户的证书,多次重复登录过程,并以特定方式修改请求:
(a) 对于提交的每个参数,尝试提交一个空值,完全省略名称/值对,并使用不
同的值多次提交同一数据项。
(b) 如果登录过程包括多个阶段,应尝试以不同的顺序执行这些阶段、完全跳过
单个阶段、直接进入任意阶段,以及在不需要参数的阶段提交参数。
(c) 如果多次提交了同一数据项,应进行探查,以确定如何处理每个值,以及在
一个阶段确认的数据在后续阶段是否仍为可信数据。


4. 某银行应用程序采用一种非常安全可靠的多阶段登录机制。在第一个阶段,
用户输入用户名和密码。在第二个阶段,用户输入在物理令牌上显示的一个不断
变化的值,并通过隐藏表单字段重新提交前面输入的用户名。
可以立即发现的逻辑缺陷有哪些?


应用程序很可能单独执行这两个检查,根据一个用户名确认密码,根据另一个用
户名确认令牌值,然后为其中一个已确认的用户名创建通过验证的会话。
如果拥有自己的物理令牌的应用程序用户没法获得了其他用户的密码,他们就可
以作为该用户登录。相反,取决于该机制的运行方式,能够读取其他用户的令牌
值的用户或许可以作为该用户登录,而无需了解后者的密码。该解决方案的总体
安全状态将因此被明显削弱。


5. 在通过提交专门设计的输入探查一个应用程序中是否存在常见的漏洞时,应
用程序频繁返回包含调试信息的详细错误消息。有时,这些消息与其他用户造成
的错误有关。发生这种情况后,就无法令其再次发生。这表示应用程序存在什么
逻辑缺陷,接下来该如何处理?


这种行为表示错误消息功能不是线程安全的,将返回由任何用户生成的上一个错
误的详细信息。应同时使用两个不同的会话进行深入探查,以确认是否确实出现
了这种情况。如果确实如此,应使用一段脚本不断触发一条详细的错误消息,并
记录其内容中的任何差异,以获取与其他应用程序用户有关的有用信息。

 

转载于:https://www.cnblogs.com/landesk/p/10888452.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569402.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

111111

表单控件在实际开发中是非常常见的。特别是对于用户信息的提交,需要大量的表单。 Vue中使用v-model指令来实现表单元素和数据的双向绑定。 案例的解析: 当我们在输入框输入内容时 因为input中的v-model绑定了message,所以会实时将输入的内容传…

野性的呼唤

记得之前老师就给我推荐过这本书,一直没机会去读它,正好这次利用闲暇时间,探究这本书讲述的故事。《野性的呼唤》这本书的主角是一条狗,名叫巴克,作者以第一人称,拟人化的手法,讲述他从一只富人…

[BZOJ2655] calc

题目链接 BZOJ:https://www.lydsy.com/JudgeOnline/problem.php?id2655 Solution 设\(f_i\)表示长度为\(i\)的序列个数,\(g_{i,x}\)表示含有\(x\)的序列个数,注意这里不考虑顺序,顺序答案直接乘\(n!\)就好了。 首先很显然可以得到…

npm搭建cli脚手架不成功

npm 装脚手架不成功,可以尝试删文件夹 C盘-users-administrator-AppData-Roaming 下面的 npm-cache即可

递归与栈的关系

递归与栈的关系: 可是为何执行了900多次就出错了呢?还说超过了最大递归深度现在,为什么要限制呢? 通俗来讲,是因为每个函数在调自己的时候还没有退出,占内存,多了肯定会导致内存崩溃。 本质上讲…

箭头函数用法

1.基本使用 2.参数和返回值 函数里只有一行代码 log没有返回值,所以是undefined 结果为 Hello Demo undefined 箭头函数: 在函数作为另外一个函数参数的时候,适合用箭头函数 3.箭头函数的this 返回值都是window 返回值,一…

Android源码分析(十一)-----Android源码中如何引用aar文件

一:aar文件如何引用 系统Settings中引用bidehelper-1.1.12.aar 文件为例 源码地址:packages/apps/Settings/Android.mk LOCAL_PATH: $(call my-dir) include $(CLEAR_VARS)LOCAL_SRC_FILES : \$(call all-logtags-files-under, src)LOCAL_MODULE : setti…

云计算值得学习吗?云计算开发技术与应用未来工作前景

云计算技术的工作前景本人非常看好,其实已经不是我自己看好的事了,而是现在本来就已经很好很火了,在云计算的基础上又存生出大量其他产业链,归根结底还是云计算是前有技术的综合体,一会儿总结,那么工作前景…

路由的导航守卫

全局导航守卫 打印一下to,看是啥 meta 元数据(描述数据的数据) 3、路由独享的守卫 保留状态 keep-alive 保持组件不要频繁进行创建和销毁 activated deactivated 只有被保存了状态,使用了keep-alive时才起作用 和正则…

优酷项目

本作业涵盖内容:线程池,锁机制,session验证机制,简易版orm,大文件md5校验,数据库操作 cookie,session,token 彻底理解cookie,session,token 客户端 客户端讲解…

promise基础学习记录

sync 同步 async 异步 链式调用 有reject情况,直接进行到catch

Vuex状态管理方式

backend 前端 frontend 后端 getters mutations参数,有参数的情况,称为负载payload 参数不是一个的话,传对象的形式 提交,一个是通过commit,另外一个是type 这种情况下,count是一个对象&#xf…

MySQL(二)

MySQL连接管理 mysql 命令 -u 用户名-p 密码 例子: mysql -uroot -poldboy123 -h ip mysql -uroot -poldboy123 -hlocalhost -P3306 例子:mysql -uroot -poldboy123 -h 10.0.0.52 -P 3308 例子:mysql -uroot -poldboy123 -h 10.0.0.52 -P 330…

axios网络模块封装

网络测试 httpbin.org 发送普通的请求 get请求可以直接拼到URL后面 也可以将参数放到params对象中 axios发送并发请求 spread可以把值展开 数组的解构 对象的解构 axios配置信息相关 原始信息 defaults全局配置 使用全局的axios和对应的配置在进行网络请求 常见的…

Docker持续集成与容器管理--系列教程

一 Docker简介 Docker介绍 Docker架构 二 Docker安装 Ubuntu Docker 安装 CentOS Docker 安装 Windows Docker 安装 MacOS Docker 安装 三 Docker使用 Docker Hello World Docker 容器使用 Docker 镜像使用 Docker 容器连接 四 Docker实例 Docker 安装 Nginx Docker 安装 MySQL…

Ubuntu 重置MySQL密码

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下: vim /etc/my.cnf 在文档内搜索mysqld定位到[mysqld]文本段: /mysqld (在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密…

margin padding 上下边框对内联元素span无效

<span> 和<code> 内联元素 设置上下边框如 margin-top margin-bottom padding-top padding-bottom&#xff0c;无效。 设置左右 margin-right margin-left padding-right padding-left&#xff0c;有效。 设置 display: inline-block 可以使上下边框生效

sendMessage 与 obtainMessage (sendToTarget)比较

我们平时在做到多线程问题的时候可能利用Handler去传递Message&#xff0c;其中&#xff0c;经常使用的就是1、new Handler().obtainMessage().sendToTarget();2、new Handler().sendMessage(new Message());第一种是直接传递what&#xff0c;obj等&#xff0c;msg的一些数据&a…

toFixed用法 四舍五入保留小数

Num.toFixed(aaa) 参数&#xff1a;其中&#xff0c;aaa 参数范围0~20&#xff0c;决定保留几位小数&#xff0c;默认是0 返回值&#xff1a; 返回数字的字符串形式 参考mdn https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixe…

MUI

跳转页面后刷新 首先在添加信息页面写上 mui.init({beforeback: function() {  //获得父页面的webviewvar list plus.webview.currentWebview().opener();  //触发父页面的自定义事件(refresh),从而进行刷新mui.fire(list, getDaily);//返回true,继续页面关闭逻辑return t…