sql注入
来源:互联网 发布:淘宝差价链接怎么做 编辑:程序博客网 时间:2024/06/05 15:08
题目链接
先按常规试试
username=admin'--&password='or''='
回显:
对不起,没有此用户!!
hint:
username:admin’
password:”’=’
这时候–和or被过滤看起来好可怕,但是单引号’没被过滤就是最幸福的事儿了(虽然有可能是经过转义的,但题目中说只是过滤,没说转义,( # ▽ # ))
这时候其实只要帐号和密码都上万能密码,啥都搞定,看似被过滤了n多n多,但却是最容易注入进去的。
来一个过法:)
username=123t'='&password=123'='
flag立马就拿到,为何能过呢?很多人就疑问了?没有or也能万能注入?
解析过程看下面
假设sql语
select * from user where username=’用户名’ and password=’密码’
username=123'='&password=123'='
语句会变成如下:
select * from user where username='123'='' and password='123'=''
这时候还不够清晰,提取前一段判断出来(后面的同样道理)
username='123'=''
这是有2个等号,然后计算顺序从左到右,
先计算username='123'
一般数据库里不可能有这个名(若有,就换一个字符串),所以这里返回值为0(相当于false)
然后0=” 这个结果呢?看到这里估计你也懂了,就是返回1(相当于true)
所以这样的注入相当于
select * from user where 1 and 1
也等于
select * from user
(这题只有筛选出来的结果有3个以上才会显示flag,没有就一直说“对不起,没有此用户!!”)
上面那个比较是弱类型的比较,
以下情况都会为true
1=’1’
1=’1.0’
1=’1后接字母(再后面有数字也可以)’
0=’除了非0数字开头的字符串’
(总体上只要前面达成0的话,要使语句为true很简单,所以这题的万能密码只要按照上述的方法去写一大把)
0 0
- SQL注入--GET注入
- 注入攻击--SQL注入
- 【sql注入】mysql注入
- SQL注入
- SQL注入
- SQL注入
- sql注入
- SQL注入
- SQL注入
- SQL注入
- SQL注入
- sql注入
- SQL注入
- SQL注入
- SQL注入
- SQL注入
- SQL注入
- sql注入
- Linux下安装zookeeper
- 设备树学习之(八)eeprom
- Java根据对象的某个字段排序
- Windows下用EasyBCD引导Ubuntu硬盘安装双系统
- Activity启动模式
- sql注入
- Linux下搭建Python环境
- Android学习笔记(5)-活动启动的最佳方式actionStart()方法
- hffffffffffffffffffffffff
- MySQL 错误 2013 Lost connection to MySQL server during query
- ffmpeg 简单播放器
- HTML DOM与核心DOM的区别
- 如何结合生物科研和计算机科学?
- Unity&Shader高级案例篇—图形命令缓冲