BUUOJ-每天两道,告别烦恼

WEB:

[GXYCTF2019]BabySQli

输入用户名admin,发现可以登入,其他显示wrong user

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

源码中发现,存在base编码

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

先base32再base64解码,发现sql语句尝试去注入

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

首先尝试万能密码:

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli发现被拦截

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

尝试手工注入:

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

一个联合注入新知识

在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。

下面是一个自己的本地环境

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

数据库原本这几个用户名和密码

执行select * from flag WHERE username=‘admi’ union select 1,‘admin’,'ababa’语句时,就会虚构一个如下图的数据Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

回到题目;

select * from user where username = ‘$name’

username的查询语句是这样的,password判断大概率就是满足admin后,判断密码是否相等,放入数据库的密码一般是加密,一般加密就那么几种,这里尝试出是md5

构造playload:name=1’ union select 0,‘admin’,‘81dc9bdb52d04dc20036dbd8313ed055’%23&pw=1234

以上playload是利用联合查询构造虚拟数据,让其判断admin,和其密码的md5值,只要我们构造对应密码的md5值,就可以利用虚拟身份绕过审核机制。

Buuoj刷题Web-WriteUp,每天两道,告别烦恼,[GXYCTF2019]BabySQli

相关文章:

  • 2022-12-23
  • 2021-11-03
  • 2021-09-28
  • 2021-07-20
  • 2021-11-04
  • 2022-01-01
猜你喜欢
  • 2021-09-26
  • 2021-11-23
  • 2021-06-22
  • 2021-05-08
  • 2021-08-02
相关资源
相似解决方案