当前位置: 首页 > news >正文

dvwa3——CSRF

LOW:

先尝试change一组密码:123456

修改成功,我们观察上面的url代码

http://localhost/DVWA/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change#

将password_new部分与password_conf部分改成我们想要的密码:4321

http://localhost/DVWA/vulnerabilities/csrf/?password_new=4321&password_conf=4321&Change=Change#

新建一个页面打开,发现密码修改成功

 MEDIUM:

尝试同样的方法发现请求失败

并且上方跳出来这个 ,第一行说请求头缺失,请求头记录着

查看这一关的源码并与low的做对比 ,多出来的这个if判断条件应该是判断当前的访问请求是否更换页面了,如果不是,就不执行请求

用bp抓包原来的请求,可以注意到这里有一个referer


***Referer***:

是http请求头中的一个字段,作用是指示当前请求的网页的来源,也就是说, referer后面的内容会告诉服务器这个请求来自于哪个页面或者url


在url里面像low一样修改成我们想要的密码,新起一个页面,bp抓包,抓到这些

send to repeater,添加如下代码

Referer:localhost

render!修改成功!!!

HIGH:

我们刚才改的密码是1111,这一级我们要把它改成0000

先提交一个新密码hhhh,并且bp抓包,抓到这些,发现这一关有了token验证

send to intreuder,和第一关一样,先clear,再把三个参数add进去,攻击方式选择Pithchfork

然后去Payloads,在payloas setting里add进我们要修改的密码,防止token失效,我们多加几组

然后和第一关一样,递归找token,先在资源池resoource pool里设置单线程

 settings里(有的版本的dp是options)

回payloads,加上

Start attack!!!!!!!!!!

关闭bp,去第一关,输入用户名和密码

登陆成功!!!!!!!!!

IMPOSSIBLE:

 我们观察一下源码


CSRF Source
vulnerabilities/csrf/source/impossible.php<?phpif( isset( $_GET[ 'Change' ] ) ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );// Get input$pass_curr = $_GET[ 'password_current' ];$pass_new  = $_GET[ 'password_new' ];$pass_conf = $_GET[ 'password_conf' ];// Sanitise current password input$pass_curr = stripslashes( $pass_curr );$pass_curr = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass_curr ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$pass_curr = md5( $pass_curr );// Check that the current password is correct$data = $db->prepare( 'SELECT password FROM users WHERE user = (:user) AND password = (:password) LIMIT 1;' );$data->bindParam( ':user', dvwaCurrentUser(), PDO::PARAM_STR );$data->bindParam( ':password', $pass_curr, PDO::PARAM_STR );$data->execute();// Do both new passwords match and does the current password match the user?if( ( $pass_new == $pass_conf ) && ( $data->rowCount() == 1 ) ) {// It does!$pass_new = stripslashes( $pass_new );$pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));$pass_new = md5( $pass_new );// Update database with new password$data = $db->prepare( 'UPDATE users SET password = (:password) WHERE user = (:user);' );$data->bindParam( ':password', $pass_new, PDO::PARAM_STR );$data->bindParam( ':user', dvwaCurrentUser(), PDO::PARAM_STR );$data->execute();// Feedback for the userecho "<pre>Password Changed.</pre>";}else {// Issue with passwords matchingecho "<pre>Passwords did not match or current password incorrect.</pre>";}
}// Generate Anti-CSRF token
generateSessionToken();?>

优化地方:

  1. 使用了pdo预处理:我的理解是提前规划好了传递数据的模板,只从用户的输入中提取数据,而其输入不能当成代码处理,比如 'or '1'=1,只能被当初密码
  2. checktoken
  3. mysqli_real_escape_string 转义
  4. 原密码验证,攻击者很难知道
  5. MD5加密,好像需要彩虹表解密,还不了解

综上,无法突破

❀❀❀ 完结撒花!!❀❀❀ 

相关文章:

  • 智能改变一切:当技术革命遇见人类文明
  • MySql(八)
  • Java本地缓存实现方案全解析:原理、优缺点与应用场景
  • 第十二篇:MySQL 分布式架构演进与云原生数据库探索
  • 针对Helsinki-NLP/opus-mt-zh-en模型进行双向互翻的微调
  • 大厂前端研发岗位设计的30道Webpack面试题及解析
  • ROS 2 中的 robot_state_publisher 和 joint_state_publisher 详解
  • comfyui 工作流中 视频长度和哪些参数有关? 生成15秒的视频,再加上RTX4060 8G显卡,尝试一下
  • AI书签管理工具开发全记录(五):后端服务搭建与API实现
  • (18)混合云架构部署
  • SpringBoot整合Flowable【08】- 前后端如何交互
  • 数据分类分级的实践与反思:源自数据分析、治理与安全交叉视角的洞察
  • AWS WebRTC:获取ICE服务地址(part 3):STUN服务和TURN服务的作用
  • 深入剖析HBase架构
  • 若依项目AI 助手代码解析
  • ImBatch 7.6.3 中文版 - 高效图片批量处理工具
  • [Javascript进阶]JSON.stringify与JSON.parse详解
  • 超级对话3:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之三
  • 酒店管理系统设计与实现
  • 数据交易场景的数据质量评估
  • 建设网站技术公司/电脑版百度入口
  • 做网站需要交维护费么/广州关键词优化外包
  • 为什么不能用来名字做网站名/seo检测优化
  • 佛山做网站公司有哪些/北京建公司网站价格
  • asp网站跳转浏览器/女教师遭网课入侵视频大全集
  • 重新安装 wordpress/百度关键词相关性优化软件