首页 > 数据库 >Buuctf——[GXYCTF2019]BabySQli

Buuctf——[GXYCTF2019]BabySQli

时间:2023-09-26 15:44:42浏览次数:35  
标签:username BabySQli Buuctf 结果 union 查询 admin GXYCTF2019 select

本题目是一道联合注入

进入页面后发现只有一个登录框。

知识点

union select联合查询

  • union拼接的两个查询语句查询字段数必须一样多
  • 当其中一个查询结果为空时,不影响另外一个语句的查询结果
  • 联合注入核心是使用拼接的select语句同时使原查询语句结果为空来覆盖原查询结果,从而实现控制从数据库中查询到的数据
  • 结合子查询实现对数据库更多的操作

解题过程

首先使用简单的语句进行测试

有waf,使用字典fuzz一下。发现过滤了 or ( ) =

尝试联合注入,order by不能用,直接union select 1,2,3,4#

最后测试出来为三个字段,一般来说就是id,username,password了

但是发现回显为wrong pass!。

屏蔽掉原本查询语句结果。payload为-1'union select 1,2,3#发现返回为

说明查询结果的username必须为有效用户,使用admin。通过修改union查询语句来修改查询结果。payload为-1'union select 1,'admin',3#
此时查询结果为

id username password
1 admin 3

此时发现为wrong pass!。修改传入的pw参数为3,使之与查询得到的password对应
发现仍然为wrong pass!考虑是对password进行MD5加密后保存在数据库中的,传入的pw会进行MD5加密后再与数据库中的数据进行比较
构造payload为-1'union select 1,admin,'eccbc87e4b5ce2fe28308fd9f2a7baf3'# (eccbc87e4b5ce2fe28308fd9f2a7baf3为3的MD5加密)

此时查询结果为

id username password
1 admin eccbc87e4b5ce2fe28308fd9f2a7baf3

修改pw参数为3,得到flag

总结

后台比较逻辑估计为如下情况

  • 首先通过username传入的参数进行数据库查询

  • 对查询结果中的username字段进行判断,(此处判断是在对查询结果进行判断,而非post传入的参数)看是否为admin

  • 对通过pw参数传入的值进行MD5加密后与查询结果中的MD5值进行比较,若相等则返回结果

关键在与通过-1'union select构造了所需要的数据库查询结果

标签:username,BabySQli,Buuctf,结果,union,查询,admin,GXYCTF2019,select
From: https://www.cnblogs.com/niyani/p/17730077.html

相关文章

  • BUUCTF Reverse/[NPUCTF2020]你好sao啊
    里面就一个加密函数,分析后发现这是一段变表的base解密,将四个字符替换成三个字符点击查看代码void*__fastcallRxEncode(constchar*a1,inta2){intv3;//[rsp+18h][rbp-38h]intv4;//[rsp+1Ch][rbp-34h]intv5;//[rsp+20h][rbp-30h]intv6;//[rsp+2......
  • Buuctf——[ZJCTF 2019]NiZhuanSiWei
    审题进入题目链接发现是白盒审计<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcometothezjctf")){echo"&l......
  • Buuctf——[网鼎杯 2020 青龙组]AreUSerialz
    这是一道序列化的题目<?phpinclude("flag.php");highlight_file(__FILE__);classFileHandler{protected$op;protected$filename;protected$content;function__construct(){$op="1";$filename="/......
  • Buuctf——[RoarCTF 2019]Easy Calc
     有waf,不能出现非数字参数值。使用%20num可以绕过waf(AbusingPHPquerystringparsertobypassIDS,IPS,andWAF(secjuice.com))过滤了单双引号,可以用chr()函数构造字符串?%20num=var_dump(scandir(chr(46))) ?%20num=show_source(chr(47).chr(102).chr(49).chr(97).ch......
  • BUUCTF [GYCTF2020]FlaskApp
    因为题目名Flask,所以先观察功能点,寻找易发生ssti的功能。考虑到功能异常抛出常见于解密环节,所以在解密界面随便输入一段不能解密的。直接报错抛出debug信息,看来是开启了debug模式。payload的使用需要输入到加密界面,再将加密结果输入到解密界面查看结果。方法1首先想办法把完......
  • BUUCTF-Web
    CTF实战:从入门到提升1.3.5.[第一章][1.3.5案例解析][极客大挑战2019]Http 打开页面,没有发现什么有用的东西右键打开页面源代码,发现页面Secret.php 显示Itdoesn'tcomefrom'https://Sycsecret.buuoj.cn',使用postman,增加Referer头显示Please use "Syclo......
  • BUUCTF [De1CTF 2019]SSRF Me
    源码#!/usr/bin/envpython#encoding=utf-8fromflaskimportFlaskfromflaskimportrequestimportsocketimporthashlibimporturllibimportsysimportosimportjsonreload(sys)sys.setdefaultencoding('latin1')app=Flask(__name__......
  • BUUCTF [极客大挑战 2019]FinalSQL
    通过尝试发现注入点在search.php。传递?id=1^1报ERROR!!!;传递?id=1^0报NO!Notthis!Clickothers~~~布尔盲注importrequestsimporttimeurl="http://eab3a4cf-d57d-4236-a9f9-1383446ba4e1.node4.buuoj.cn:81/search.php?"result=''temp={"id":......
  • BUUCTF [SWPU2019]Web1
    进入网站,注册登录,进到申请发布广告,应该就是在这里实现注入。首先尝试:1'or1=1#标题含有敏感词汇应该是哪里被过滤了。经过尝试后是or被过滤了,--+,#等其他的注释符也被过滤了。经过测试后,结尾可以用单引号闭合。再次尝试:1'showdatabases()'1'showdatabases()'空格被......
  • BUUCTF [CISCN2019 华东南赛区]Web11
    切入点如图:测试模板注入最后或者payload:X-Forwarded-For:{ifreadfile('/flag')}{/if}原理是Smarty已经废弃{php}标签。在Smarty3.1,{php}仅在SmartyBC中可用。Smarty的{if}条件判断和PHP的if非常相似,只是增加了一些特性。每个{if}必须有一个配对的{/if}。全部的PHP条件表......