- GET和POST区别
1.GET把请求数据放在URL上,以?分割URL和传输数据,参数之间以&相连,所以GET不太安全;
POST把数据放在HTTP数据包里面(request body)
2.GET是获取数据,POST是修改数据
3.GET提交的数据最大是2k(实际的限制取决于浏览器),POST理论上是没有限制的
4.GET产生一个TCP数据包,浏览器会把http header和data一并发出去,服务器响应200(返回数据);
POST产生两个TCP数据包,浏览器先发送header,服务器响应100(continue),浏览器在发生data,服务器响应200OK(返回数据)
5.GET请求会被浏览器主动缓存;POST不会,除非手动设置。 - CSRF和XSS和XXE区别,修复方式
XSS:跨站脚本攻击,攻击者在网页中嵌入客户端脚本(js),当用户使用浏览器加载被嵌入恶意代码的网页时,恶意代码基本就在用户的浏览器执行,从而实现窃取用户信息(cookie)的攻击
修复方式:1.对实体字符进行转义。2.使用HTTP only来禁止js读取cookie值。3.输入时校验、浏览器与web应用端采用相同的字符编码
CSRF:跨站请求伪造攻击
修复方式:筛选出需要防范CSRF的页面,然后嵌入token,再次输入密码,校验referer
XXE:XML外部实体注入攻击,敏感文件读取
修复方式:XML解析库再调用时严格禁止对外部实体的解析。 - XSS有哪几种类型
1.反射型:非持久性、参数行,恶意代码(在http请求、输入框后面加上js脚本)并没有保存在目标网站,诱导用户点击一个恶意链接到目标的攻击。后端进行处理
2.存储型:持久型,恶意代码会存储在目标网站。后端进行处理
3.DOM型:通过修改网页的DOM节点形成的XSS。前端处理,没有弹窗,只能http请求上输入脚本
去呗:反射型的恶意代码存在URL里,存储型恶意代码存在服务器端,DOM型,取出和执行恶意代码都是有前端浏览器完成,属于前端js自身的安全漏洞,其他两种属于服务端的安全漏洞。 - 如何验证存在XSS漏洞
本质:用户输入的html语句直接输出
挖掘XSS的第一步:找到输入,用户可以抽空代码的位置
第二步:找输出,输入的代码在物业的那个位置进行输出
第三步:构造payload - CSRF、SSRF和重放攻击有什么区别
CSRF由客户端发起,当用户登录站点a后,在没有退出站点a的情况下,访问了恶意站点b,恶意站点b发出一个伪造的访问请求,表面上是用户再次访问站点a,实际是恶意站点b访问了站点a;
SSRF是服务器端请求伪造,由服务器发起,用户通常不能直接访问内网服务器b,只能访问服务器a,攻击者伪造请求,通过a间接访问b的资源;
重放攻击是截获的数据包进行重放,达到身份认证等目的; - XSS、CSRF、SSRF区别
XSS是服务器对用户输入的数据没有进行严格的过滤,导致客户端浏览器在渲染服务器返回的html页面时,出现了预期值之外的脚本语句被执行;
CSRF是服务器端没有对用户提交的数据进行随机值校验,且对http请求包内的refer字段校验不严,导致攻击者可以利用用户的cookie信息伪造用户请求发送至服务器;
SSRF是服务器对用户提供的可控url过于信任,没有对攻击者提供的url进行地址限制和严格的检测,导致攻击者可以以此为跳板攻击内网或其他服务器 - JAVA反序列化,有没有了解Shiro反序列化
- PHP反序列化有了解吗
-
拿到一个待检测的站,该如何渗透/渗透测试的思路
1.信息收集:服务器相关信息(真实IP、系统类型、版本、开放的端口等等)
网站指纹(CMS\CDN、证书等、dns记录)
whois信息(姓名、备案、邮箱、电话)
黑引擎/白引擎子域名收集、旁站、c段等
google hacking
扫描网站目录结构、爆破后台
2.漏洞测试
SQL注入、文件上传、命令执行、XSS、XXE、文件包含
3.漏洞利用
getsheel
4.权限提升
mysql udf提权、windows低版本提取、linux脏牛等等
5.权限维持
隐藏账户、后门
6.内网扫描
7.内网攻击
8.痕迹清理
删除相关日志
9.总结报告及修复方案 -
sqlmap中,os-shell的利用条件及原理
利用条件:root权限、知道绝对路径、GPC关闭、secure_file_priv参数为空或为指定路径;