csrf 全称:Cross-site request forgery(跨站请求伪造)
利用用户已登陆的身份,在用户毫不知情的情况下以用户的名义完成非法操作。
危害:执行恶意操作(“被转账”,“被发垃圾评论”等)
制造蠕虫
点击劫持:
原理:通过覆盖不可见的框架误导受害者点击而造成的攻击行为,利用隐蔽性高
来骗取用户操作从而实施了“ui-覆盖攻击”,所使用的标签有iframe或者其他
标签的属性。改变内嵌网站的可见度与吸引你点击的按钮相重合来进行点击劫持
实现代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 <html>
<head>
<meta charset="utf-8">
<title>美女图片不点开你会后悔</title>
<style>
html,body,iframe{
display:block;
height:100%;
width:100%;
margin:0;
padding:0;
border:none;
}
iframe{
opacity:0.5;
}
button{
position:absolute;
top:-10px;
z-index:1;
}
</style>
</head>
<body>
<button><img src="http://ww1.sinaimg.cn/large/0069oIoUgy1fmpn4phtupj30lc07574r.jpg"></button>
<iframe src="table.php"></iframe>
</body>
</html>
修改iframe内嵌标签的中的opacity属性来更改内嵌网站的可见度,以及调整诱惑信息的位置与隐藏链接的位置重合
url跳转漏洞:
借助未验证的URl跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。
url跳转链接攻击流程截图:
跳转方式:
1.Header头跳转
实例代码:1
2
3
4
5
6
7
8
9
10
11
12<?php
/*header("Content-type:text/html;charset=utf-8");*/
if(isset($_REQUEST["url"]))
{
$url=$_REQUEST["url"];
}
/*else{
$url="table.php";
}*/
header("HTTP/1.1 301 Moved Permanently");
header("Location:$url");
?>
2.Javascript跳转
实例代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19<html>
<head>
<meta charset="utf-8">
<title>welcome</title>
<script type="text/javascript">
function getQuerystring(name){
var reg= new RegExp("(^|&)"+name+"*([^&]*)*)(&|$","i");
var r=window.location.search.substr(i).match(reg);
if(r!=null)
return unescape(r[2]);
return null;
}
var site=getQuerystring("site");
window.location.href=site;
</script>
</head>
<body>
</body>
</html>
3.META标签跳转
示例代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18<html>
<head>
<title>welcome</title>
<?php
header("content-Type:text/html;charset=utf-8");
if(isset($_REQUEST["url"]));
{
$url=$_REQUEST["url"];
}
else{
$url="table.php";
}
?>
<meta http-equiv="refresh" content="3;url=<?php echo $url;?>">
</head>
<body>
</body>
</html>
命令注入解析:
1.调用可执行系统命令的函数
php中执行命令的函数:system,exec,shell_exec, eval1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<html>
<head>
<meta charset="utf-8">
<title>welcome</title>
</head>
<body>
<?php
if(isset($_GET['type'])){
$type=$_GET['type'];
}
else{
$type=1;
}
switch($type){
case 1:
exec('ipconfig',$output,$status);
break;
case 2:
exec('net user',$output,$status);
break;
case 3:
exec('dir',$output,$status);
break;
}
foreach($output as $value){
echo (mb_convert_encoding($value,"utf-8","gb2312"));
echo("<br />");
}
?>
</body>
</html>
exec(String command,array $output,int $status)命令执行后返回数组
system(String command,int $returnval)直接执行输出
eval(“phpcode”)
shell_exec(String command)
2.函数或函数的参数可控
3.拼接注入命令
&在url中是参数分隔符,要链接命令之间可以用转译成url格式的%26来替换&。
文件操作漏洞
文件上传(可以上传可执行脚本,有执行权限)
1.上传木马
2.上传webshell
文件下载(未验证下载文件格式,没有限制请求的路径)
1.下载系统封任意文件
2.下载程序代码
文件包含(节约代码量,将重复的代码写入文件)
1.本地文件包含(本地服务器配置等的文件)
2.远程文件包含 (使用http或其他请求方式来访问远程文件)
php中的一些文件包含函数:include(),require(),include_once(),require_once()
需要保证在配置文件中:
allow_url_fopen=On(是否允许打开远程文件)
allow_url_include=On(是否允许包含远程文件)
1 | <html> |
同源策略
同源策略:
指的是拥有相同的域名,协议,端口(阻止一个页面上的恶意脚本通过页面的DOM对象获得访问另一个页面上敏感信息的权限)
浏览器中常用加载资源的标签: