[极客大挑战 2019]EasySQL 1

靶机,启动!

 第一次写的时候给这背景吓一跳,当时对sql注入是一丁点都不懂,直接就看题解了,(其实现在写别的题也会)现在多少学会一点,所以试试直接上万能密码

' or 1=1 #

 

 登录一下flag就出来了

那么问题来了,为什么这个是万能密码内

知识点

在数据库里,以mysql为例,'单引号是闭合符号,#是注释符号,在mysql中,如果遇到错误的数据类型,他会转换成正确的数据类型,我们输入时,假设输入的是admin和12345,查询语句就会是 select * from table_name where username = 'admin' and password ='12345'

那如果我们输入的是这个万能密码呢?

查询语句就变成了 select * from table_name where username = ' ' or 1=1 #' or password=' 'or 1=1 #'。

在这里,第一和第二个单引号形成了闭合,是一个完整的字符,而or是只要两边有一边为真就全为真,而1=1又恒为真,加上#注释掉了后面的语句,所以最后发到数据库的查询语句就是

select * from where username=' ' or 1=1 # 

这样就登录成功了

 于是就拿到了flag。

其实这道题确实是easysql了,因为一般不会有sql题可以直接用万能密码。

我对sql题还是比较恐惧的,感觉sql题比一般题的知识点都多。

对这道题,他是数字型的报错,但是别的题可能是字符型的报错,这些等写后面sql题再说吧。

sql的知识点我觉得是很多,但是没办法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值