「配枪朱丽叶。」 「配枪朱丽叶。」
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
  • 🏠 INDEX
  • 🚩 CTF
    • WEB
    • CRYPTO
    • MISC
  • 🌐 SITE
    • BUUCTF
    • XCTF
    • CTF.SHOW
    • BMZCTF
    • VULNHUB
    • BUGKU
    • HACKTHEBOX
  • 📔 NOTE
    • 学习笔记
    • 工具分享
    • 漏洞复现
  • 👩‍💻 ABOUT ME
  • 💬 COMMENT
我的主页 › CTF › [CTF.SHOW]web101 min read
#CTF#

[CTF.SHOW]web101 min read

11月前
190 1

登录输入任何东西无果qwq,fuzz了一下运气好index.phps试出来了源码,夸夸自己:

<?php
		$flag="";
        function replaceSpecialChar($strParam){
             $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i";
             return preg_replace($regex,"",$strParam);
        }
        if (!$con)
        {
            die('Could not connect: ' . mysqli_error());
        }
		if(strlen($username)!=strlen(replaceSpecialChar($username))){
			die("sql inject error");
		}
		if(strlen($password)!=strlen(replaceSpecialChar($password))){
			die("sql inject error");
		}
		$sql="select * from user where username = '$username'";
		$result=mysqli_query($con,$sql);
			if(mysqli_num_rows($result)>0){
					while($row=mysqli_fetch_assoc($result)){
						if($password==$row['password']){
							echo "登陆成功<br>";
							echo $flag;
						}

					 }
			}
    ?>

分析代码,过滤了select|from|where|join|sleep|and|空白字符|union,且不区分大小写。过滤空白字符好说,可以用/**/代替。

正常情况下:

return preg_replace($regex, "", $strParam);

把名单内替换为空,可以用双写绕过,但是这道题:

if(strlen($username)!=strlen(replaceSpecialChar($username))){
			die("sql inject error");
		}

它会检查用户输入值和替换黑名单后的长度是否一致,所以不能双写绕过。

再往下看,获取flag的条件是$password==$row[‘password’],然而并不知道什么密码呀,查询资料学到了这里可以用WITH ROLLUP绕过:

with rollup:   要配合 group by 一块儿使用,”group by password with rollup”,简单说一下,就是使用with rollup 查询以后,查询结果集合里面会多一条NULL 记录,这一题利用NULL 和空字符相等,而后获得flag。所以我们就是要通过with rollup使sql语句查询结果为null,然后不输入password使password为null

payload:‘or/**/1=1/**/group/**/by/**/password/**/with/**/rollup#

⚪参考:

https://www.cnblogs.com/chalan630/p/12676944.html

1 0
Shaw Root
# ctf-show# sql注入# web# 代码审计
相关文章
[SUCTF 2018]GetShell
virink_2019_files_share
[SUCTF 2019]EasyWeb
[BMZCTF]WEB_ezphp
通过一道校赛题学习过滤单引号的注入
头像
Shaw Root站长
> 姐僦湜女王 洎信邡洸芒💃
145文章 0评论 128获赞
随便看看:)
吉警网络安全技能挑战赛五月赛WP
10月前
[GYCTF2020]Ezsqli
4月前
[Vulnhub]DC-5靶机通关记录
4月前
第四届“蓝帽杯”全国大学生网络安全技能大赛初赛部分Writeup
7月前
密码保护:[CTF.SHOW]WEB入门-php特性做题记录(133~150_plus)
4月前
  • 旧站
  • 我的知乎
  • Riro
  • 7i4n2h3n9
  • EDS
  • 熵增
  • 紫哥purplet
  • 夏风
  • N0vice
  • Ga1@xy
  • prontosil
  • FzWjScJ
  • Retr_0
  • L1near
  • 1p0ch
  • β-AS
  • Match
  • Dizzyk
  • Y1ng
  • 偏有宸机
  • Van1sh
  • Fstone
  • Kali’s Blog
  • Airtail
  • False
  • 魔法少女雪殇
Copyright © 2020-2021 「配枪朱丽叶。」. Designed by nicetheme. 百度统计 载入天数... 载入时分秒...