• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

[极客大挑战 2019]EasySQL1

武飞扬头像
One_Lock_Li
帮助1

目录

一、解题思路

二、原理及相关知识点


一、解题思路

        打开页面看到如下界面,有两个功能点且参数可控,允许上传,(这也是sql注入的基础)很明显与数据库存在信息交互,想到sql注入。

学新通

        尝试简单万能密码:

1' or '1'='1'#       

学新通直接通过,这题确实简单,后面还有关于这道题的升级 

学新通

二、原理及相关知识点

万能密码原理在于闭合,和其他类型sql注入相同

        假设原语句: 

  1.  
    SELECT * FROM admin WHERE Username= '".$username."'
  2.  
    AND Password= '".md5($password)."'

结合刚刚解题的万能密码分析上述语句 

1' or '1'='1'#       

 将我们的万能密码代入后会得到下面的语句:

  1.  
    SELECT * FROM admin WHERE Username= '1' or '1'='1''
  2.  
    AND Password= '".md5($password)."'

观察上述代入的语句发现,#作为注释符会将后面'AND语句全部注释掉,于是,语句就变成下面的形式:

SELECT * FROM admin WHERE Username= '1' or '1'='1'

'or'是或运算符,只要'or'前后有一项为真即可,上面语句中'1'='1'为恒等式,所以username是否为真就不再重要,因此称为万能密码。

所以上述题目对密码输入反而没有要求:

学新通

这样输入同样可以拿到flag。 

遇到有过滤的题目,可以结合burp查看过滤情况对输入payload进行相关调整。

引用一条链接,感兴趣的可以进一步学习

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaaefb
系列文章
更多 icon
同类精品
更多 icon
继续加载