后台的SQL语句通过字符串拼接后后导致执行各种意想不到的语句,配合sql语句的outfile功能,还能写入一个脚本文件到服务器。 没有过滤就接收用户上传的文件(如 攻击原理:攻击者上传带有恶意脚本的 反射型: 比如根据 被攻击网站:用户登录后因为session缘故,浏览器关闭前所有请求都是合法的(不用再精彩账号密码认证了)当用户登录了网站 采用验证码,token,敏感操作避免GET(因为可以src等方式触发) sql注入
原理:
例子:
id=1
拼接出来为select * from table where id=1
这时执行正常假设用户提交的为id=1 and 1=1
拼接出来为select * from table where and 1=1
这时执行异常,所以内容都被查出来了
job_rul=xxx
来拼接,但是攻击者提交了job_rul=sql' or 1=1 limit 1--
预防:
文件上传攻击
.php
等文件)或者没有给文件重命名,最后通过攻击者通过web请求导致恶意脚本调用被执行常见漏洞
123.jpg/1.php
可以把 jpg当php执行,原理是其解析向前归递造成的,有人问jpg文件怎么当脚本运行,其实是图片里可以插入程序代码的,具体实现就不透露了
123.php.jpg
apache当成php来运行(IIS6,实测apache2.2.xx有这个问题,2.4.xx已经修复)123.jpg
到网站,获得了http://url.com/123.jpg
这个文件路径,然后通过http://url.com/123.jpg/1.php
触发123.jpg所带的程序代码预防:
.php
,.sh
等脚本上来也会被重命名成指定的文件类型(如jpg)导致无法被攻击者执行
XSS攻击
原理:
$_GET['username']
显示到网页上 有可能被人username=
注入代码发给用户点击从而被攻击.也有可能JS读取了URL部分字段导致的储存型:通过发表文章等把代码存入数据库别人看的时候没过滤就执行出来。危害:盗取管理员密码 cookie 控制用户ajax等。预防:入库过滤和显示时过滤(htmlspeicalchar命令等)
csrf攻击
原理:
A
,这时候访问黑客的网站B
,B
站的js代码控制用户去调用网站A的一个脚本:
GET
方式 如<img src="http://A.com/deletePost.php">
这样就相当于以用户的身份去触发了对A站http://A.com/deletePost.php
脚本的操作
POST
这种方式要复杂一点,但是还是可以被攻击者利用(构造一个隐藏的html表单,通过js去提交到站点A)以用户的名义去触发操作,比如删除修改密码等,配合XSS攻击效果更明显。预防: