WEB安全知识点,最近学习WEB安全做的一些知识点笔记
**1.什么是Whois查询
2.备案信息是什么
3.如何使用Google进行敏感信息查询
4.Burp Suite是一个什么工具
5.如何进行子域名检测
6.子域名和主域名的区别是什么
7.端口说明以及攻击方向
8.什么是指纹识别
9.什么是CDN
10.如何判断目标是否使用了CDN
11.如何绕过CDN寻找真是IP
12.C段是指什么
13.如何搜集web目录结构和敏感文件
14.SQL注入漏洞的产生需要满足什么条件
15.MySql中infomation_schema数据库作用是什么
16.如何测试当前是否存在SQL注入
17.如果存在SQL注入漏洞应该如何获取该数据表的字段数量
18.什么是union SQL注入,如何利用union SQL获得数据库名与表名
19.什么是Boolean注入攻击以及如何利用
20.什么是报错注入攻击以及如何利用
21.什么是时间注入攻击,以及如何利用
22.什么是堆叠查询攻击,以及如何利用
23.什么是二次注入攻击
24.什么是宽字节注入攻击,以及如何利用
25.什么是cookie注入以及如何利用
26.什么是base64注入攻击以及如何利用
27.什么是XFF注入攻击,以及如何利用
28.什么是大小写注入绕过,以及如何使用
29.什么是双写绕过注入,以及如何使用
30.什么是编码绕过注入,以及如何使用
31.内联注释绕过注入,以及如何利用
32.什么是XSS漏洞,XSS漏洞常见的有几种
33.常见XSS语句以及编码绕过
34.XSS漏洞修复建议
35.什么是CSRF漏洞
36.CSRF漏洞原理
37.CSRF漏洞修复建议
38.什么是SSRF漏洞
39.SSRF漏洞原理
40.SSRF漏洞修复建议
41.什么是文件上传漏洞
42.文件上传漏洞绕过方法
43.暴力破解攻击以及防御
44.命令执行漏洞与修复
45.什么是逻辑漏洞
46.什么是XXE漏洞
47.代码审计方法与技巧
48.什么是反序列化漏洞
49.什么是路径回溯漏洞
**
1.Whois是一个标准的互联网协议,可以用于收集网络注册信息,注册的域名,IP地址等详细信息,常用查询的网站:https://whois.aizhan.com、https://www.virustotal.com
2.备案信息是是网站备案是根据国家法律规定,需要网站的所有者向国家有关部门申请的备案,这是国家信息产业对网站的一种管理,主要针对国内网站,如果网站搭建在国外则不需要进行备案。
3.Google常用语法级说明
Site 指定域名
Inurl URL中存在关键字的页面
Intext 网页正文中的关键字
Filetype 指定文件类型
Intitle 网页标题中的关键字
Link link:baidu.com即表示返回所有和baidu.com做了链接的URL
Info 查找指定站点的一些基本信息
Cache 搜索Google里关于某些内容的缓存
例子:
Site: edu.cn intext:后台管理,搜索结果为指定域名的后台登录管理系统s
4.Burp Suite工具主要是利用不同漏洞进行测试,还可以获得Server类型及版本、PHP版本信息等,针对不同的Server可以利用不同的漏洞进行测试,除此之外也可以尝试在GitHub勋章相关敏感信息,和查询乌云漏洞表查询对应server的历史漏洞信息s
5.子域名检测可以使用工具主要有Layer子域名挖掘机、K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego、CE等也可以使用搜索引擎枚举比如site:baidu.com语法(Google)
6.主域名:由两个或两个以上的字母构成,中间由点号隔开,整个域名只有1个点号
比如:csdn.net
子域名:是在主域名之下的域名,域名内容会有多个点号
比如:blog.csdn.net
7.书P8(Web安全攻防:渗透测试实战指南)
8.指纹识别:应用程序一般在html、js、css等文件中多多少少会包含一些特征码,比如WordPress在robots.txt中包含wp-admin,首页index.php包含generator=wordpress 3.X.X这个特征就是CMS指纹,常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。
CMS被称为整站系统或者文章系统,开发者给客户一个软件包,客户自己配置好就可以管理网站了,类似于自动搭建网站的框架。
可以CMS扫描网站来快速定位使用的主流CMS
网站:
BugScaner:http://whatweb.bugscaner.com/look/
云蟋指纹:http://www.yunsee.cn/finger.html
WhatWeb:https://whatweb.net/
9.CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题,说得简单点,就是一组在不同运营商之间的队节点上的高速缓存服务器,把用户经常访问的静态数据资源)(例如:静态的html、css、js图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接分发到离用户最近的节点服务器上响应给用户。
10.可以进行全国多地区的ping服务进行操作,如果响应的ip结果相同那么不太可能购买CDN服务(https://www.17ce.com)提供全国ping服务

11.(1)内部邮箱资源
一般的邮箱系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,截获数据包分析邮件目标IP
(2)扫描网站测试文件、如phpinfo、test等、从而找到目标的真实IP
(3)分站域名,很多网站主站访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以用个ping二级域名获取分站的IP,可能会出现分站和主站不是同一个IP但是在同一个C段下面的情况,从而判断目标的真实IP段
(4)国外访问,国内CDN往往只对国内用户的访问加速,国外的CDN就不一定了,可以使用代理网站 A匹配Synthetic Monitor(https://asm.ca.com/en/ping.php)
(5)查询域名的解析记录可能目标很久之前没有使用过CDN,可以使用网站NETCRAFT(https://www.netcraft.com)来观察域名的IP历史记录
(6)APP利用,如果网站有自己的APP可以尝试Fiddler或者Burp Suite抓取App请求
验证获取的IP,在找到目标的真实IP以后,最简单的方法是IP访问web如果不行可以使用Masscan工具批量扫描对应IP段中所有开了80/443/8080等端口的IP
12.C段:一般是指C段网段,这叫做C段渗透,IP范围是192.0.0.1到223.255.255.254
13.可以使用工具进行网站目录扫描主要的工具有DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py(轻量级快速单文件后台扫描)、Sensitiverfilescan(轻量级快速单文件目录后台扫描)
14.SQL注入漏洞的产生需要满足什么条件
(1)参数用户可控:前段传给后端的参数内容都是用户可以控制的。
(2)参数带入数据库查询:传入的参数拼接到SQL语句,并且带入数据库查询。
15.MySql中infomation_schema数据库作用是什么
MySql在5.0版本之后,MySql默认在数据库存放一个information_schema数据库,在该库中SCHEMATA、TABLES、COLUMNS都有不同的功能
SCHEMATA存储该用户创建的所有数据库库名
TABLES表存储该用户创建的所有数据库的库名和表名
COLUMNS表存储用户创建的所有数据库的库名、表名、字段名
16.如何测试当前是否存在SQL注入
使用and 1=1,1=1结果为true所以如果拼接上and1=1后网页响应结果无变化那么,可能存在SQL注入,在使用and1=2如果之前and1=1可以正常访问但是and1=2后不能正常访问那么有较大可能性存在SQL注入
17.如果存在SQL注入漏洞应该如何获取该数据表的字段数量
得出网站可能存在SQL注入的结论可以使用order by 1-99语句查询该数据表的字段数量,可以理解为order by=1-99如果访问id=1 order by 3 页面返回正常而改成id=1 order by 4页面不正常则说明该字段为3.
18.什么是union SQL注入,如何利用union SQL获得数据库名与表名
(1)UNION操作符用于合并两个或多个SELECT语句的结果集,需要注意UNION内部的SELECT语句必须拥有相同数量的列,列也必须拥有相似数据的类型,同时,每条SELECT语句中列的顺序必须相同。
(2)使用union查询数据库库名和表名需要首先使用ORDER BY获得字段数,比如字段数为3,则 id=1 union selct 1,2,3返回结果就会有123,获取库名则id=1 union select 1,database(),3那么原本返回2的位置就会返回数据库库名。
例子:select * from infophonename where id=-1 union select 1,database(),3
(3)UNION也可以获得表名,例如MYSQL下面information_schema数据库下面的TABLES表中的TABLE_SCHEMA是数据库名,TABLE_NAME是该数据库包含的表名,因此在使用union获得表名之前必须知道数据库名可以使用上述union database()来获得数据库库名,然后使用where条件筛选TABLE_SCHEMA查询TABLE_NAME就可以得出该数据库有几个表了。
例子:
select * from infophonename where id=-1 ORDER BY 3
select * from infophonename where id=-1 union select 1,database(),3
select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=‘lpy’ LIMIT 0,1
19.什么是Boolean注入攻击及其利用
Boolean注入也是SQL注入的一种但是查询的结果不是true就是false,因此该SQL注入不能使用常见的union嵌入SQL语句。
Boolean注入获得数据库名长度
例子:select id from infophonename where id=1 and length(database())>=3
Boolean注入获得数据库名
例:select id from infophonename where id=1 and SUBSTRING(database(),1,1)=‘l’
使用substring截取来实现比较法来判断数据库名,一般名字范围在a-z、0-9
Boolean获得表名
和上述方法类似通过substring
例子:
select id from infophonename where id=1 and SUBSTRING(
(select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=‘lpy’ LIMIT 0,1)
,1,1)=‘i’
20.什么是报错注入攻击以及如何利用
报错注入是因为参数错误将错误参数拼接到sql语句中后将错误信息返回到前台页面,可以利用返回的错误信息来获取有价值的内容
(1)利用报错注入获取数据库内容利用updatexml()
例子:
select * from infophonename where id=1 and updatexml(1,concat(0x7e,(select user()),0x7e),1)
(2)报错注入利用updatexml获得database()
例子:
select * from infophonename where id=1 and updatexml(1,concat(0x7e,(select SCHEMA_NAME from information_schema.SCHEMATA LIMIT 0,1),0x7e),1)
21.什么是时间注入攻击以及如何利用
时间注入是利用sleep()和benchmark()等函数让MySql、执行的时间变长,时间盲注多于IF(expr1,expr2,expr3)结合使用,本质就是利用时间差来判断结果是否正确。
例子:
select * from infophonename where id=1 and if(length(database())>2,sleep(5),1)
如果database()>2为ture则没有阻塞,时间执行正常。
22.什么是堆叠查询注入以及如何利用
堆叠查询可以执行多条语句,多语句之间分号隔开,堆叠查询注入就是利用了这个特点,在第二个SQL语句中构造自己要执行的语句,
例子:
select * from infophonename where id=1;select if(substr(user(),1,1)=‘l’,sleep(3),1)%23)
23.什么是二次注入
什么是二次注入比如一个A页面是注册用户名插入SQL语句的地方,B页面是功能是通过参数ID读取用户和用户信息,那么可以使用A页面的用户获得B页面的用户和用户信息。
24.什么是宽字符注入攻击以及如何利用
如果符合被转义那么数据库使用的是GBK编码是可以使用宽字符注入。
比如id=1’单引号被转译成/导致注入失败,可以尝试使用宽字符注入,id=1%df’%23,
宽字符的格式是在地址后先加一个%df,再加一个单引号,因为反斜杠的编码为%5c在GBK编码中%df%5c是繁体字连这个时候可以是’逃逸成功。
25.什么是cookie注入以及如何利用
Cookie注入是利用cookie中有于数据库操作的行为,修改cookie中的拼接sql达到SQL注入的目的,可以结合Burp Suite抓包分析。
26.Base64注入攻击是什么以及如何利用
Base64注入原理与普通SQL注入并没有太大区别只是使用了Base64编码,检测比如and1=1和and1=2的Base64编码分别为MSBhbmQgMt0x和MSBhbmQgMT0y
27.什么是XFF注入攻击以及如何利用
在HTTP请求头中有一个头部参数X-Forwarded-for,X-Forwarded-For简称XFF头,他代表客户端真实IP,通过修改X-Forwarded-for的值可以伪造客户端IP。
可以通过修改X-Forwarded-for来判断是否存在SQL注入,比如127.0.0.1’有单引号访问URL报错这说明存在XFF注入。
28.什么是大小注入绕过以及如何使用
大小注入绕过是一种最为基础的绕过方法之一,比如and 1=1被拦截可以尝试改为AND 1=1拦截
29.什么是双写绕过注入以及如何使用
双写绕过注入是最为基础的绕过方法之一非常简单一个注入绕过,比如id=1 and1=1 仍然失败,那么有可能是将and给过滤掉了,可以使用 id=1 andand1=1进行尝试双写绕过注入。
30.什么是编码绕过注入,以及如何使用
编码绕过是经典绕过方法之一,比如id and 1=1 、id and 1=2 发现关键字 and被过滤,尝试使用URL全编码的方式绕过拦截,由于服务器自动对URL进行一次URL解码,所以需要把关键词编码两次,这里需要注意的是URL需要选择全编码,而不是普通的URL编码,关键字and两次URL编码的结果为%25%36%31%25%36%65%25%36%34访问id=1%25%36%31%25%36%65%25%36%34 1=1,进行检测是否存在SQL注入。
31.什么是内联注释绕过,以及如何使用
内联注释绕过,就是嵌入/!and/注释类似于这种格式and可以任意替换,主要是利用MYSQL注释BUG来执行SQL语句,如何and语句被过滤则是以尝试使用内联注释绕过,例子
id=1 and /!and/1=1
32.什么是XSS漏洞,XSS漏洞常见的有几种
跨站脚本(Cross-Site Scripting)简称XSS或跨站脚本攻击,是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种,它允许恶意用户将代码注入网页,其他用户在浏览网页时就会收到影响,恶意用户利用XSS代码攻击成功后,可能得到很高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
XSS攻击常见可以分为三种:反射型,存储型和DOM型
(32.1)反射性XSS
反射性XSS又称非持久XSS,这种攻击方式往往具有一次性。
攻击方式:攻击者通过电子邮件等方式将包含XSS代码的恶意链接发送给目标用户,当目标用户访问该链接时,服务器接收目标用户的请求并进行处理,然后服务器把带有XSS代码的数据发送给目标用户的浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。
(32.2)存储性XSS
存储性XSS又称持久性XSS,攻击脚本将被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。
攻击方式:这种攻击多见于论坛、博客、和留言板,攻击者在发帖的过程中,将恶意脚本连同正常的信息一起注入帖子的内容中,随着帖子被服务器保存下来,恶意脚本也被永久地存储在服务器的后端存储器中,当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。
例如:<srcipt>alert(/hacker by hacker/)<script>
当其他用户访问留言板时,就会看到一个弹框,可以看到存储性XSS攻击方式能够将恶意代码永久嵌入在一个页面中,所有访问这个页面的用户都将称为受害者。如果我们能够谨慎的对待来历不明的链接,那么反射性XSS攻击将没有多大的作为,而存储性XSS则不同,由于它注入在一些我们信任的页面中,因此无论我们多么小心,都难免会受到攻击。
(32.3)DOM型XSS
DOM全称Document Object Model使用DOM可以使程序的脚本能够动态的访问和更新文档的内容、结构及样式。
DOM型XSS其实是一种特殊的类型的反射型XSS,它基于DOM文档对象模型的一些漏洞。
在网站页面中有许多因素,当页面达到浏览器时,浏览器会有页面创建一个顶级的DocumentObject文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象(DOM),每个文档对象包含属性、方法、和事件通过JS脚本对文档对象进行编辑,从而修改页面元素。
攻击方式:用户请求一个经过专门设计的URL,它由攻击者提交,而其中包含XSS代码。服务器的响应不会以任何形式包含攻击的脚本,当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。
33.常见XSS语句以及编码绕过
(33.1)XSS常用的测试语句

<script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<a href=javascript:alert(1)>

常见的XSS的绕过编码有JS编码,HTML实体编码和URL编码。
(33.2)JS编码
JS提供了四种字符编码的策略。
三个八进制数字,如果个数不攻击,在前面补0.例如‘e’的编码为’\145’
两个十六进制数字,如果个数不够,在前面补0例如“e”的编码为“\x65”
四个十六进制数字,如果个数不够,在前面补0例如“e”的编码为“\u0065”
对于一些控制字符,可以使用特殊C类型的转移风格比如\n\r
(33.3)HTML实体编码
命名实体:以&开头,以分号结尾的,例如“<”的编码是“&lt”
字符编码:十进制、十六进制ASCII码或Unicode字符编码,样式为“&#数值”,例如“<”可以编码为&#060或者&#x3c
(33.4)URL编码
这里的URL编码,可以两次URL全编码结束,如果alert被过滤,结果为
%25%36%31%25%36%63%25%36%35%25%37%32%25%37%34
使用XSS编码测试时,需要考虑HTML渲染的顺序,特别针对多种编码组合时,需要选择合适的编码方式进行测试。
34.XSS漏洞修复建议
因为XSS漏洞设计输入和输出两部分,所以其修复也分为两部分。
过滤输入的数据包括 ‘ “ “ < > on * 等非法关键字
对输出的页面的数据进行相应的编码转换,包括HTML实体编码,JavaScript编码等
35.什么是CSRF漏洞
CSRF(跨站请求伪造)也被称为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用,尽管提起来像跨站脚本(XSS),但是它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站,与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)难以防范。
36.CSRF漏洞原理
其实可以这样理解CSRF,攻击者利用目标用户的身份,以目标用户的名义执行某些非法操作,CSRF能够做的事情包括:以目标用户的名义发送邮件,发送消息,盗取目标用户的账号,甚至购买产品、虚拟货币转账,这会泄露个人隐私并威胁到了目标用户的财产安全。
例子:逆向给某位用户转账100元,那么单机转账按钮后,发出的HTTP请求会与http://www.xxbank.com/pay.php?user=xx&money=100类似而攻击者伪造了链接http://www.xxbank.com/pay.php?user=666&money=100,就会向666账号转账100元,而且这只涉及目标用户的操作,攻击者并没有获取目标用户的cookie或账号信息。
CSRF的攻击过程有以下两个重点:
(1)目标用户已经登录了网站,能够执行网站的功能
(2)目标用户访问了攻击者构造的URL
37.CSRF漏洞修复建议
(1)验证网站请求的Referer的值,如果Referer是以字节网站开的域名,则说明该请求来自网站自己,是合法的,如果Referer是其他网站域名或空白,就有可能是CSRF攻击,那么服务器应该拒绝该请求,但是此方法存在被绕过注入的可能。
(2)CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,由此可知抵御CSRF攻击的关键在于:在请求中放入攻击者不能伪造的信息,例如可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端验证token,如果没有token或者token的内容不正确,则认为该请求可能是CSRF。
38.什么是SSRF漏洞
SSRF(Server-Side Request Forgery,服务端请求伪造)是一种由攻击者构造请求,由服务端发起请求的安全漏洞,一般情况下SSRF攻击的目标是外网无法访问的内部系统(正因为请求是由服务端发起的),所以服务端能请求到与自身相连而与外网隔离的内部系统。
39.SSRF漏洞原理
SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制,例如,黑客操作服务端从指定的URL地址获取网页文本内容,加载指定地址的图标等,利用的是服务端的请求伪造。SSRF利用存在缺陷的Web应用作为代理攻击远程和本地的服务器。
主要攻击方式如下:
(1)对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息。
(2)攻击运行在内网或本地的应用程序。
(3)对内网Web应用进行指纹识别,识别企业内部的资产信息。
(4)攻击内外网的Web应用,主要是使用HTTP GET请求就可以实现全部攻击(比如 struts2 /SQil等)。
(5)利用file协议读取本地文件等。
通过服务器访问内网造成信息泄露,或通过file协议读取文件。
40.SSRF漏洞修复建议
(1)限制请求的端口只能为Web端口,只准许访问HTTP和HTTPS的请求。
(2)限制不能访问内外的IP,以防止对内网进行攻击。
(3)屏蔽返回详细信息。
41.什么是文件上传漏洞
上传文件时,如果服务端代码未对客户端上传的文件进行严格验证和过滤,就容易造成可以上传任意文件的情况,包括上传脚本文件(asp、aspx、php、jsp等格式的文件)。
非法用户可以利用上传的恶意脚本控制整个网站,甚至控制服务器,整个恶意的脚本文件被称为WebShell,也可将WebShell,也可以将WebShll脚本称为一种网页后门,WebShell脚本具有非常强大的功能,比如查看服务器目录、服务器中的文件。执行系统命令等。
42.文件上传漏洞绕过方法
(1)JS检测绕过攻击
JS检测绕过上传漏洞常见用于用户选择文件上传的场景,如果上传文件的后缀不被允许,则会弹窗告知,此时上传文件的数据包并没有发送到服务端,只是在客户端浏览器使用JavaScript对数据包进行检测。
绕过方法:
(1.1)使用浏览器插件,删除检测文件的后缀的JS代码,然后上传文件即可绕过。
(1.2)首先把需要上传的文件的后缀名改为允许上传的,如jpg/png等,绕过js的检测,在抓包,把后缀名改为可执行文件的后缀即可上传成功。
(2)文件后缀解析绕过攻击
文件后缀绕过攻击是服务端代码中限制了某些后缀的文件不允许上传,但是有些Apache是允许解析其他的文件后缀的,例如httpd.conf中,如果配置有如下代码则能够解析php、phtml文件
AddType appcation/x-httpd-php .php .phtml
在Apache的解析顺序中,从右到左开始解析文件后缀,如果最右侧的扩展名不可识别,就继续往左判断,直到遇到可以解析的文件后缀为止,所以如何上传的文件名类似于1.php.xxxx,因为xxxx不可解析,所以向左解析后缀php。
(3)文件类型绕过攻击
在客户端通过Burp Suite抓取数据包,当上传一个php格式的文件时,可以看到数据包中Content-type的值是application/octet-syream,而上传jpg格式的文件时,数据包中Content-type的值是image/jpeg如果后端是判断Content-type判断文件类型则可以通过抓包改包将application/octet-stream改为image/jpeg来绕过攻击。
(4)文件截断绕过攻击
截断类型PHP%00截断
截断原理:00汇编中代表结束字符的标识不会保存后面的数据,因此可以使用1.php%00.jpg后面的.jpg会被服务端截断掉变成1.php.
(6)竞争条件攻击
一些网站上传文件的逻辑是先允许上传任意文件,然后检查上传的文件是否包含WebShell脚本,如果包含则删除该文件,这里存在的问题是文件上传成功后和删除文件之间存在一个短的时间差(因此要执行检查文件和删除文件的操作),攻击者可以利用这个时间差完成竞争条件的上传漏洞攻击。
文件上传修复建议:
通过白名单的方法判断文件后缀是否合法。
对上传后的文件进行重命名,例如rand(10,99).date(“YmdHis”).jpg
43.暴力破解攻击以及防御
暴力破解的产生是由于服务器端没有做限制,导致攻击者可以通过暴力手段破解所需要的信息,如用户名、密码、验证码等,暴力破解需要一个庞大的字典,如4位数字验证码,那么暴力破解的范围就是0000~9999,暴力破解的关键在于字典大小。
可以使用Burp Suite抓包在Infrader中选择密码处进行爆破,导入密码字典进行,查看数据包的Length值跟其他的都不一样,这个数据包中Payload就是爆破成功的密码。
爆破破解修复建议:
如果用户登录次数超过设置的阈值,则锁定账号。
如果某个IP登录次数超过设置的阈值,则锁定IP。
44.命令执行漏洞与修复
应用程序有时需要一些执行系统命令的函数,在PHP中,使用system、exec、shell_exec、passthru、popen、proc_popen等函数可以执行系统命令,当黑客能控制这些函数中的参数时,就可以将恶意的系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
比如网页支持一个ping功能但是没有对字段进行过滤写入127.0.0.1|whoami(|为windows管道符)则会ping 127.0.0.1后执行whoami命令。
修复建议:
尽量不要使用命令执行函数。
客户端提交的变量在进入执行命令函数前要做好过滤和检测。
在使用动态函数之前,确保使用的函数是指定的函数之一。
45.什么是逻辑漏洞
逻辑漏洞就是指攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改、越权访问,密码找回,交易支付金额等功能处。其中越权访问又有水平越权和垂直越权两种。
水平越权:相同级别(权限)的用户或者同一角色中不同用户之间,可以越权访问、修改或删除其他用户信息的非法操作,如果出现此漏洞,可能会造成大批量数据的泄露。
垂直越权:就是不同级别之间的用户或者不同角色之间用户的越权,比如普通用户可以执行管理才能执行的功能。
逻辑缺陷表现在设计或开发者在思考过程中做出的特殊假设在明显或隐含的错误。
精明的攻击者会特别注意目标应用程序采用的逻辑方式,并设法了解设计者与开发者可能做出的假设,然后考虑如何攻破这些假设,黑客在挖掘逻辑漏洞时有两个重点:业务流程和HTTP/HTTPS请求篡改。
常见的逻辑漏洞:
支付订单:在支付订单时,可以篡改价格为任意金额,或者可以篡改运费或其他费用为负数,导致总金额降低。
越权访问:通过越权漏洞访问他人信息或者操纵他人账号。
重置密码:在重置密码时,存在多种逻辑漏洞,比如利用session覆盖重置密码,短信验证码直接返回在数据包中等。
竞争条件:竞争条件常见于多种攻击场景中,比如前面介绍的文件上传漏洞,还有一个常见场景就是购物时,例如用户A的余额为10元,商品B的价格为6元,商品C的价格为5元,如果用户A分别购买商品B和商品C那么余额肯定是不够的,但是如果用户A利用竞争条件,使用多线程同时发送购买商品B和商品C的请求,可能会出现以下几种情况。
有一件商品购买失败
商品都购买成功,但是只扣了6元
商品都购买成功,但余额变成了-1元
46.什么是XXE漏洞
XML外部实体注入(XML External Enitiy)简称XXE漏洞,XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据,定义数据类型,是一种允许用户对自己标记语言进行定义的源语言,XML文档结构包含XML声明,DTD文件类型定义(可选)、文档元素。
文件类型定义(DTD)可以是内部声明也可以引用外部DTD
内部声明DTD格式:
引用外部DTD格式:
XXE漏洞攻击:
如果服务端解析XML则可以使用引用外部实体格式来泄露关键数据,
XXE漏洞修复建议
禁止使用外部实体,例如libxml_disable_entity_loader(true)
过滤用户提交的XML数据,防止出现非法内容.
47.代码审计方法与技巧
(47.1)小型代码审计
(1)找到各个输入点。
(2)找到针对输入的过滤并尝试绕过。
(3)找到处理输入的函数并查看无漏洞。
(4)找到漏洞后进行充分利用。
(47.2)大型代码审计
(1)找到危险函数。
(2)向上回溯寻找有无可用输入点。
(3)尝试绕过针对输入点的过滤。
(4)寻找触发漏洞的方法。
48.什么是反序列化漏洞
转载:https://www.cnblogs.com/ssooking/p/5875215.html
(48.1)什么是序列化与反序列化
序列化:将对象转换二进制,可以将对象写入硬盘(持久化对象)或者在网络上传输这些二进制数据(网络传输序列化对象)。
反序列化:将二进制转换为对象。
漏洞原理:在反序列化的时候,如果反序列化的数据是经过特殊构造的可能会造成反序列化漏洞。
POC构造:构造一个对象-反序列化-提交数据。
49.什么是路径回溯漏洞
在Windows系统中…/或者…\在路径表示上都是上一级的意思
比如:
C:\WINDOWS\win.ini
C:\WINDOWS\SYSTEM32…\win.ini
C:\WINDOWS…/WINDOWS\win.ini
LINUX中下面路径也是等效的。
/etc/password
/home/user/php/templates/…/…/…/…/etc/passwd
足够的…使得路径跳转根目录时,多余的…将被忽略掉。
如果开发者没有对路径回溯进行过滤或者权限控制的话,攻击者可以通过精心构造回溯路径获得服务器上的敏感文件。
例子:
正常请求 http://www.baidu.com/download.asp?file=document.pdf
进行路径回溯攻击构造的请求
http://www.baidu.com/download.asp?file=…/…/…/…/…/…/windows/win.ini

web安全相关知识点(持续更新中)相关推荐

  1. 2023系统分析师分散知识点(持续更新中)

    文章目录 一致性哈希算法 一致性哈希算法在分布式缓存上的应用 布隆过滤器 布隆过滤器在分布式缓存中的应用 分布式缓存中的数据同步方案 1. 主动推送 2. 被动更新 主从数据库同步方案 1. 基于 S ...

  2. 前端知识点总结——JS高级(持续更新中)

    前端知识点总结--JS高级(持续更新中) 1.字符串 什么是: 连续存储多个字符的字符数组 相同: 1. 下标 2. .length 3. 遍历 4. 选取: slice(starti[, endi] ...

  3. Linux简单知识点梳理(持续更新中)_莫韵乐的Linux王国

    Linux简单知识点梳理(持续更新中) Linux系统特点 特点 开放性 多用户 良好的用户界面 提供丰富的网络功能 设备独立性 可靠的系统安全 良好的可移植性 ##### Linux系统体系结构 名 ...

  4. 最值得收藏的 数字图像处理 全部知识点思维导图整理(武汉大学慕课课程)(持续更新中)

    本文的思维导图根据慕课上的武汉大学数字图像处理国家精品课程整理而来并标记出重点内容 思维导图就整理了这么多,之后应该也不会更新此内容了, 有需要的可以去 我的主页 了解更多学科的精品思维导图整理 本文 ...

  5. 亲测好用的软件(持续更新中)

    目录 系统管理类 微软电脑管家 XMeters Geek Uninstaller 系统辅助类 Snatch WizTree Search Everything 个人管理类 MyLifeOrganize ...

  6. 2020今日头条面试真题及答案整理最新最全持续更新中~~~~

    大家好,我是好好学习天天编程的天天 一个整天在互联网上爬虫的程序员,每天给大家分享学习干货的攻城狮 2020今日头条面试真题及答案整理&最新最全&持续更新中~~~~ 2020今日头条面 ...

  7. 个人知识库(持续更新中)

    打造一个属于自己的知识库 为什么会有这个知识库 四大件 数据结构与算法 计算机网络 操作系统 计算机组成原理 基础知识 JavaSE 数据库 Java Web SSM框架 微服务开发 Linux运维 ...

  8. 我学习 Java 的历程和体会(写给新手看,欢迎老司机批评和建议,持续更新中)

    我学习 Java 的历程和体会(写给新手看,欢迎老司机批评和建议,持续更新中) 最初写这篇文章的时候,是在今年的 9 月中旬.今天,我想再写写这将近两个多月以来的感受. 在今年的 10 月我来到北京求 ...

  9. 网络流题目详讲+题单(提高版)(持续更新中......)

    网络流题目详讲+题单(提高版)(持续更新中......) 标签:图论--网络流 PS:如果你觉得自己还不够强(和我一样弱),可以去入门版看看 阅读体验:https://zybuluo.com/Junl ...

  10. 2020云栖大会奖品大盘点(持续更新中)

    简介:2020云栖大会开发者游乐园正在火热进行中,但是阿里妹听到有许多开发者表示,不知道这次开发者游乐园都有哪些礼品,或是不知道上哪赢取.阿里妹决定为你带来一篇最全的开发者奖品大盘点!奖品持续更新中, ...

最新文章

  1. 安装Visual C ++进行跨平台移动开发
  2. AWS Storage Gateway 分类
  3. JavaEE 要懂的小事:一、图解Http协议
  4. 【PC工具】PhotoScape简单好用绿色免费功能强大的照片编辑器(文章评论小程序测试)...
  5. HTML设置虚拟按键,畅玩安卓模拟器的设置虚拟按键的方法
  6. ad怎么修改栅格_江苏宋女士回农村100万盖洋房,6个闺蜜结伴养老,你怎么看?...
  7. 统计学习方法9—EM算法
  8. python pandas读取csv_pandas读取csv文件数据的方法及注意点
  9. java.lang.StringIndexOutOfBoundsException: String index out of range: 0错误的原因
  10. 无法连接Elasticsearch解决方案
  11. [BZOJ3506] [Cqoi2014] 排序机械臂 (splay)
  12. DMA和IOMMU概念理解
  13. 电子产品环境可靠性测试标准有哪些?
  14. 汇编语言和本地代码及通过编译器输出汇编语言的源代码
  15. 图像文字识别:Python批量识别图片中的文字并自动改名
  16. latex排版--插入符号数学公式常见问题
  17. 视频号小白如何做出一个赚钱的视频号?
  18. Conditional Likelihood Maximisation: A Unifying Framework for Information Theoretic Feature Selecti
  19. modbus slave和modbus poll
  20. day27-迭代器协议,协程,同步异步

热门文章

  1. Java如何去除字符串中的HTML标签
  2. 2021河南省ICPC省赛总结
  3. ARVE: Augmented Reality Applications in Vehicle to Edge Networks
  4. 面试题,你觉得产品经理的职责有哪些?
  5. windows、Linux、VxWorks 下errno含义
  6. (计算机组成原理)CPU的功能
  7. 详细解读MeeGo系统构架
  8. wolframalpha最新版_WolframAlpha安卓版中文最新版
  9. ”linux学习之路” (感觉写的很好,更像是网络编程学习路线图)
  10. 折腾 NeoVim 和 SpaceVim