pikachu 1.暴力破解

暴力破解:  连续尝试+字典+自动化

安全措施:      1.复杂密码

                        2.安全验证码

                        3.对登录行为进行判断

                        4.双因素认证

流程:        1.确认登录接口的脆弱性

                2.对字典进行优化

                3.工具自动化

技巧:1.对目标网站进行注册可以得到信息

                2.利用账户密码错误  和密码错误  判断账号

验证码技巧:1.先抓包,判断验证码时效性是否长期有效

                        2.如果有,就可是穷举账户和密码

xss:

第一步:先输入字符看是否能输出

第二步:输入js语句看看(可能有长短问题)<script>alert(1)</script>   <script>alert(document.cookie)</script>

第三步:在URL中输入js语句        

储存xss:只要进入页面需要加载的地方就会运行

DOM型xss

xss获取键盘

而为了安全考虑,所有的浏览器都约定了“同源策略”,同源策略规定,两个不同域名之间不能使用JS进行相互操作。比如:x.com域名下的javascrip并不能操作y.com域下的对象。
 

如果想要跨域操作,则需要管理员进行特殊的配置。
比如通过: header( "Access-Control-Allow-Origin:x.com”)指定。

 

Tips:下面这些标签跨域加载资源(资源类型是有限制的)是不受同源策略限制的。

<script src= "..”>l/js,加载到本地执行
<img src= "...”>//图片
<link href= "...” >//css
<iframe src= “..”" >//任意资源

为什么要有同源策略:
A登陆了淘宝,攻击者向A发送一个恶意链接urlb:http:// www.盗你cookie.com如果没有同源策略,即: urlb上的js可以操作A的内容(如∶获取cookie等)有了同源策略,就限制了这种情况。

再比如:
一个恶意站点A上使用了<iframe src=“B站点登陆页面”>,发送该恶意url到攻击对象,攻击对象登陆后如果没有同源策略,则A上的JS即可获取B站点的登陆信息。

XSS绕过

0,前端限制绕过,直接抓包重放,或者修改html前端代码

1.,大小写混合,比如:<SCRIPT>aLeRT(111)</sCRIpt>
2,拼凑:<scri<script>pt>alert(111)</scri</script> pt>    红色会被干掉
3,使用注释进行干扰:<scri<!--test-->pt>alert(111)</sc <!--test--> ript>      同上

XSS绕过-过滤-编码
核心思路:
后台过滤了特殊字符,比如<script>标签,但该标签可以被各种编码,后台不一定会过滤当浏览器对该编码进行识别时,会翻译成正常的标签,从而执行.
注意:虽然后台认不出,但是输出一定要认得出

        

栗子∶使用事件属性onxxx();
<img src=x οnerrοr="alert('xss')”/>可以把alert('xss')进行html编码
<img src=x οnerrοr="&#97;8&#108;8#101;&#114;&#116;&#40;8#39;&#120;&#115;8#115;8#39;&#41; "/>
<img src=x
οnmοuseοver= “&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;"/>

可以执行
注意,事件标签里面并不会执行<script></script>标签里面的代码.

htmlspecialchars()函数把预定义的字符转换为HTML 实体。
预定义的字符是:
&(和号)成为 &amp

(双引号)成为&quot

(单引号)成为&#039

(小于)成为&lt>

(大于)成为&gt

可用的引号类型:
ENT_COMPAT -默认。仅编码双引号。

ENT_QUOTES -编码双引号和单引号。

ENT_NOQUOTES -不编码任何引号。
 

防范措施

总的原则:输入做过滤,输出做转义
过滤︰根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字。

如果是网站就只允许http和https进行过滤


转义∶所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行js转义。
 

输出在a标签的href属性里面,可以使用javascript协议来执行js

javascript有个特点:不会对tag和字符实体进行解释,需要进行js转义

        html实体编码只能编过去,但是js里面却不能编回来,导致前端功能无法使用

所以需要js的输出点使用\对字符进行转义。


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值