web安全

白帽子讲web安全读书笔记(Ⅱ)

北战南征 提交于 2020-02-04 05:46:24
二.客户端脚本安全----浏览器安全 1. 同源策略(Same Origin Policy):DOM,Cookie,XMLHttpRequest,Flash,Java Applet等 浏览器的同源策略,限制了来自不同源的document或脚本,对当前document读取或设置某些属性,确保来自不同Origin的对象无法相互干扰。是浏览器安全的基础。 如JavaScript的同源策略:host,子域名,端口,协议完全相同才算同源。 a.标签 通过<script><img><iframe><link>等标签的src属性可以跨域加载资源,实际上是浏览器发出了一次GET请求,不受同源策略限制,这样加载的资源的origin属于其运行页面的url,而非资源本身的url。加载的JavaScript不能读、写返回的内容。 b.XMLHttpRequest 可访问同源对象的内容,默认不能跨域,否则会导致敏感数据泄露,如Token。基于信任“JavaScript无法控制HTTP头”,目标域返回的HTTP可以授权是否允许XMLHttpRequest跨域访问。 c.Flash 网站提供crossdomain.xml文件判断当前源是否允许当前“源”的Flash跨域访问目标资源。Flash9 之后还实现MIME检查确认crossdomain.xml的合法性,以及crossdomain.xml是否在根目录下

【web安全】sql注入之报错注入的基本流程

耗尽温柔 提交于 2020-02-02 06:16:57
报错注入属于盲注的一种,可以是get注入,也可以是post注入 它是在网页没有回显的情况下,可以用报错函数让我们想要的数据报错弹出来 Updataxml() 更新xml文档的函数 使用方法: 路径不存在或非正常路径会报错 Updatexml(目标xml内容,xml文档路径,更新的内容) Updatexml(1,concat(0x7e,(select database()),0x7e),3) 0x7e , ( select database ( ) ) , 0x7e = ~ ( select database ( ) ) ~ 子查询 = ~ maoshe ~ 注入步骤就跟get注入一样了,在子查询里面改变一下语句 注: concat 函数 是连接符 0x是16进制 0x7e 是~ 报错注入有输出限制,尽量不要用group_concat()函数 来源: CSDN 作者: 吃遍全国海底捞 链接: https://blog.csdn.net/NiFeng_ShouHu/article/details/104099425

Web安全-SQL注入:MySQL注入天书(5-6) Blind Injection

坚强是说给别人听的谎言 提交于 2020-02-02 03:41:35
文章目录 内容 布尔型盲注########## 注入点判断 撞数据库版本 撞数据库名 使用sqlmap做布尔型盲注的猜解 内容 MySQL注入天书 Less5 - Less6 布尔型盲注########## 从注入点判断到用 ORDER BY 判断出列数都和前面的一样 只是想用 UNION SELECT 时发现页面并不回显数据库中的信息 而只是根据一个布尔值回显 You are in... 或者什么都不显示 这种类型的注入称为布尔型盲注 Boolean Based Blind Injection 打个比方 Error Based型注入像一个傻白甜 你问她:你现在的用户是谁啊? 她就会告诉你:是root Boolean Based型盲注就是单纯的傻,没有白甜 你问她:你现在的用户是谁啊? 她就不说话 那你只能问:你现在的用户是root嘛? 她会回答是或不是 注入点判断 单引号判断法 所以构造payload如下 ?id = 1 ' AND your_payload % 23 id需为合法id,这样做AND运算才可判断出payload的布尔值 撞数据库版本 截取version的前三个字符,判断是否等于5.6或5.7等等等等 返回Boolean值,与id的选择结果作AND 根据最终是否有回显判断payload的布尔值 这样就知道数据库版本为5.7了

【web安全】sql注入之盲注的基本流程

谁说我不能喝 提交于 2020-02-02 03:23:24
什么是盲注,只要关闭了回显,它就是盲注 盲注分布尔盲注跟时间盲注 布尔盲注:根据页面返回的true跟flase来判断。页面显示正常就是true,页面返回不正常就是flase。 时间盲注:用sleep()函数判断,无论输入什么,他都只会显示一个页面,就根据页面有没有睡眠来判断 布尔盲注需要用到的函数: length() 返回字符串的长度 length(sleep) 那就返回5 substr() 截取字符串 substr(sleep,2,1) 它就是从第二个字符开始截取,截取一个 返回u ascii() 返回字符的ascii码 时间盲注需要用到的函数: Sleep() 将程序挂起一定时间n为n秒 If(expr1,expr2,expr3) 判断语句 如果第一个语句正确就执行第二个语句,如果错误就执行第三个语句 来源: CSDN 作者: 吃遍全国海底捞 链接: https://blog.csdn.net/NiFeng_ShouHu/article/details/104100569

【web安全】sql注入之盲注靶场实战

浪子不回头ぞ 提交于 2020-02-02 03:08:28
第一题 打开靶场,输入id参数 页面显示内容,然后直接输入 ?id=1' and 666=666 -- yuyu 页面显示正常 然后输入 ?id=1' and 666=888 -- yuyu 发现页面不正常 但是没有报错,猜测存在盲注 然后就直接查一下数据库的名字的长度,输入 ?id=1' and length((select database()))>10 -- yuyu 发现页面还是显示不正常 就猜测数据库的名字长度少于或等于10,然后继续猜,输入 ?id=1' and length((select database()))>5 -- yuyu 发现页面显示正常了 就猜测数据库的名字大于5,少于或等于10,然后就继续猜,输入 ?id=1' and length((select database()))>8 -- yuyu 发现页面不正常 就继续猜 ?id=1' and length((select database()))>7 -- yuyu 页面正常 然后继续猜 ?id=1' and length((select database()))>9 -- yuyu 猜到大于7,不大于8和9 就试试等于8 ?id=1' and length((select database()))=8 -- yuyu 发现页面正确 就猜到数据库名字长度是8

【web安全基础】可以挖哪些洞

那年仲夏 提交于 2020-01-28 23:57:07
目录 0.常见的安全事件 1.XSS 1.1 存储型 1.2 反射型 1.2 DOM型 2.CSRF 3.点击劫持 4.URL跳转 5.SQL注入 6.命令注入 7.文件操作漏洞 0.常见的安全事件 1.XSS 1.1 存储型 1.2 反射型 上图是response,下图是解析url的request直接输出到response 1.2 DOM型 浏览器通过JS(javascript)从url中提取xss脚本内容并写入DOM中触发xss 如上右击查看源代码(服务端返回浏览器的响应页面)查找xss找不到,因为DOM型xss由js触发 2.CSRF 3.点击劫持 4.URL跳转 5.SQL注入 前面全是客户端漏洞,下面全是服务端漏洞 6.命令注入 7.文件操作漏洞 来源: CSDN 作者: weixin_43435675 链接: https://blog.csdn.net/weixin_43435675/article/details/104099422

常见六大Web安全攻防解析

大兔子大兔子 提交于 2020-01-28 12:49:55
转自:https://www.cnblogs.com/fundebug/p/details-about-6-web-security.html 一、XSS XSS (Cross-Site Scripting),跨站脚本攻击,因为缩写和CSS重叠,所以只能叫XSS。跨站脚本攻击是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击 跨站脚本攻击有可能造成以下影响: 利用虚假输入表单骗取用户个人信息 利用脚本窃取用户的Cookie值,被害者在不知情的情况下,帮助攻击者发送恶意请求 显示伪造的文章或图片 XSS的原理是恶意攻击者往Web页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中Web里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的 XSS的攻击方式千变万化,但还是可以大致细分为几种类型 1.非持久型XSS(反射型XSS) 非持久型XSS漏洞,一般是通过给别人发送 带有恶意脚本代码参数的URL ,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行 举一个例子,比如页面中包含有以下代码: <select> <script> document.write('' + '<option value=1>' + location.href.substring(location

Web安全之kali 安装

泪湿孤枕 提交于 2020-01-26 03:56:17
详细安装过程: 转载: https://blog.csdn.net/JaydenWang5310/article/details/78104472 1.新建一个虚拟机(根据主机系统选择版本) 2.给虚拟机分配内存,32位系统(x86)运行内存不低于1G,64位系统(x64)运行内存不低于4G,这里我分配2G 3.现在创建虚拟硬盘 4.选择虚拟硬盘文件类型 5.在物理硬盘上的存储方式,个人建议选择固定大小(运行更快更流畅) 6.确定虚拟硬盘空间,我给了80G(尽量大一些,省的后面容量不足,又出各种问题) 7.创建虚拟机后,选中刚才创建的虚拟机,右键,设置,在常规菜单中,选择高级选项卡,将共享粘贴板和拖放全部改为双向 8.在系统菜单中,选中处理器选项卡,勾选扩展特性(必须),然后点击OK 9.加载Kali Linux系统镜像,点击后选择虚拟盘,然后选择你下载到本地的镜像文件,打开 10.如图,我用的是kali-linux-2017.1-i386版本 11.启动虚拟机,如果有警告信息,直接忽略,键盘选中图形安装,回车进入 12.中文简体 继续 13.是 继续 14.中国 继续 15.第一项 美国英语 继续 16.系统配置后,进入个性化配置,主机名随意但不能和虚拟机名称相同,域名随意,可以留空,继续 17.设置密码 18.使用整个磁盘,继续 19.选择磁盘(虚拟机中安装应该只有一个),继续

【web安全】浅谈sql注入的原理

依然范特西╮ 提交于 2020-01-24 22:03:51
在了解sql注入前我们先了解一下什么是注入? 注入: 注入攻击的本质就是把用户输入的数据当做代码执行。 这里有两个关键条件就是: 1、用户能够控制数据 2、程序要执行的代码拼接了用户输入的数据,然后把它执行了。 sql注入 就是数据库要执行的代码拼接了用户输入的sql语句,然后数据库把语句执行了。 1、用户能够控制数据 2、数据库要执行的代码拼接用户输入的sql语句,然后执行了 sql注入有很多种类,我把它分为几个大类: 按照返回结果分为: 显错注入跟盲注 按照注入方式分为: get注入,post注入,head注入,cookie注入 而里面有两种奇怪的注入,那就是宽字节注入和报错注入,宽字节属于get注入跟post注入,而报错注入属于盲注的一种。 来源: CSDN 作者: 吃遍全国海底捞 链接: https://blog.csdn.net/NiFeng_ShouHu/article/details/103866189

Web安全之CSRF

怎甘沉沦 提交于 2020-01-20 16:55:35
CSRF 一.什么是CSRF 1.CSRF:Cross-site request forgery 跨站请求伪造 2.CSRF可以实施的前提: (1)CSRF利用站点对用户浏览器的信任 (2)被攻击网站依赖用户的身份认证 (3)网站信任已经验证过的用户 (4)攻击者使得用户的浏览器发送HTTP请求到目标网站 注意:攻击者利用的是浏览器会主动带上cookie这一原理,并没有从用户的磁盘下直接盗取用户的cookie。所有的动作都是浏览器主动完成的。 浏览器给哪个网站发出请求,不会在意是从哪个网站发出的,只在意发送到哪个网站 二.攻击过程 1.攻击原理: (1).用户浏览器首先登陆了bank.com,bank.com生成了cookie并保留在用户浏览器Victim.Brower中。 (2).用户被欺骗,访问了attacker.com (3).attacker网站中隐藏了一个表单,并用js进行自动表单请求,用户浏览器会自动执行这个操作。 攻击者伪造了本应由用户自己主动发出的行为。 (4).之后用户浏览器再访问bank.com,会自动带上cookie。 (5).之后bank.com响应这个请求,攻击完成。 2.在zoobar网站上进行攻击的实现 所谓实现CSRF攻击,就是比如用户的正常界面是A,在这个A上存在提交的表单或者需要和服务器交互的什么东东