当前位置: 首页 > news >正文

有二维码怎样做网站正规男科医院

有二维码怎样做网站,正规男科医院,平邑县建设局网站,初学平面设计从哪学起这道题目是bugku的web题目 题目的 描  述: KosenCTF{} 原文链接&#xff1a; CTF网络安全大赛web题目&#xff1a;just_sqli - 红客网-网络安全与渗透技术 题目Web源代码&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…

这道题目是bugku的web题目
题目的 描  述: KosenCTF{}

原文链接: CTF网络安全大赛web题目:just_sqli - 红客网-网络安全与渗透技术

题目Web源代码:

<?php$user = NULL;
$is_admin = 0;if (isset($_GET["source"])) {highlight_file(__FILE__);exit;
}if (isset($_POST["username"]) && isset($_POST["password"])) {$username = $_POST["username"];$password = $_POST["password"];$db = new PDO("sqlite:../database.db");$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);try {$db->exec("CREATE TABLE IF NOT EXISTS users (username TEXT UNIQUE, password TEXT, is_admin BOOL);");$q = "username, is_admin FROM users WHERE username = '$username' AND password = '$password'";if (preg_match("/SELECT/i", $q)) {throw new Exception("only select is a forbidden word");}$rows = $db->query("SELECT " . $q, PDO::FETCH_ASSOC);foreach ($rows as $row) {$user = $row["username"];$is_admin = $row["is_admin"];}}catch (Exception $e) {exit("EXCEPTION!");}}?><!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>Just SQLi</title>
</head>
<body><h1>Just SQLi</h1>    <div><a href="?source=1">view source</a><?php if ($user) { ?><div>Nice Login <?= $user ?></div><?php if ($is_admin) { ?><div>And Nice to Get the Admin Permission!</div><div> <?= include("../flag.php"); ?></div><?php } ?><?php } ?><form action="" method="POST"><div>username: <input type="text" name="username" required></div><div>password: <input type="text" name="password" required></div><div><input type="submit" value="Login"></div></form></body>
</html>

从给定的PHP代码中,有几个关键的安全问题可以被利用来进行SQL注入。但首先,需要注意的是代码中尝试使用preg_match来防止"SELECT"关键词的使用,然而这种尝试是无效的,因为它并没有在构造完整的SQL查询时应用此检查。

下面是一个可能的SQL注入攻击步骤,来绕过身份验证并获取管理员权限:

 原文链接: CTF网络安全大赛web题目:just_sqli - 红客网-网络安全与渗透技术

  1. 用户名注入:由于用户名和密码直接插入到SQL查询中,我们可以尝试在用户名字段中注入SQL代码。但是,由于preg_match检查,我们不能直接包含"SELECT"。但我们可以尝试其他方法,如注释掉原查询的剩余部分。
  2. 构造注入语句:在用户名字段中,我们可以尝试使用SQL注释(-- 在SQLite中是有效的)来截断原始查询的其余部分,并附加我们自己的查询条件。由于代码尝试直接构造一个片段并添加到SELECT查询中,我们可以利用这一点。
  3. 绕过preg_match:由于preg_match只检查$q变量(这只是一个片段,不是完整的SQL查询),我们可以构造一个不包含"SELECT"的片段,但在实际执行时,它将成为完整的SELECT查询的一部分。

下面是一个可能的注入攻击示例(请注意,这只是一个示例,实际情况可能有所不同):

在用户名字段中输入:

' OR '1'='1' --

在密码字段中输入任意值(例如"password123")。

提交表单后,生成的SQL查询将是:

SELECT username, is_admin FROM users WHERE username = '' OR '1'='1' --' AND password = 'password123'

由于--是SQL注释,所以查询的剩余部分(包括密码验证部分)将被忽略。这样,查询将返回表中的所有用户,无论他们的密码是什么。

然而,为了获取管理员权限,我们可能还需要进一步利用其他漏洞或尝试其他注入方法,因为此查询仅返回用户名和is_admin字段,而不直接修改它们。

但请注意,这种攻击是违法的,并且只应在法律允许和道德接受的环境(如安全培训或测试环境)中进行。在实际环境中尝试此类攻击可能导致法律责任和其他后果。

 原文链接: CTF网络安全大赛web题目:just_sqli - 红客网-网络安全与渗透技术

我们开始对这个题目进行sql注入吧
一开始我们先盲注,构造查询语句

admin'or 1=1 -- 

发现行不通
接着我们开始联合查询

admin'union select 1,2#

发现还是不行
看了下代码, preg_match("/SELECT/i", $q这个对select进行了处理。
接着我们开始下一个方法就是用values进行替换select就行了

admin'union values('password',1) -- 

屏幕截图 2024-05-15 135422.png


也是成功拿到答案

红客网(blog.hongkewang.cn)

 原文链接:

CTF网络安全大赛web题目:just_sqli - 红客网-网络安全与渗透技术

http://www.yayakq.cn/news/146529/

相关文章:

  • 仅仅建设银行网站打不开做网站要先做商标吗
  • 江阴安泰物流有限公司网站谁做的电商wordpress和thinkphp
  • 成都有哪些比较做网站比较好的自助建站系统哪个好用
  • 货物运输东莞网站建设网站建设费计入 科目
  • 网站建设方案书网络部署方案线上渠道推广有哪些方式
  • 九江市房管局建设官方网站wordpress模板可以添加注册会员
  • 威海建设集团官方网站女生读电子商务好就业吗
  • 使用的电脑做网站的服务器网站管理助手怎么使用
  • 广州专门做网站深圳建站模板公司
  • 淄博建企业网站品牌网站建设-建站之路
  • 泰兴企业网站建设佛山营销网站建设公司
  • 广州航海学院门户网站深圳做营销网站的公司哪家好
  • 网站实名认证功能怎么做北京建站管理系统开发
  • 和网站设计人员谈价要注意什么培训网站建设方案说明
  • 云南省网站建设收费调查报告论文ui设计和前端开发哪个好
  • 页游平台网站免费设计企业logo
  • 温州网站建设和推广wordpress 翻译方案
  • 自己的公司怎么做网站网站名称和备案不一样
  • excel做网站二维码wordpress防淘宝主题
  • 适合大型网站的流量套餐星际网络泰安网络公司
  • 乐山市规划和建设局网站霍林郭勒市建设局网站
  • 建设招聘网站淘宝上网站建设续费
  • 外贸网站建设推广公司价格没有公司可以注册网站吗
  • 招聘网站开发的目的与意义wordpress时间调用标签
  • 环保网站建设情况报告wordpress spam
  • 网站建站是什么网站怎么做电脑系统下载
  • h5电子商城网站开发广州公司注册代理机构哪家好
  • 邢台企业网站建设服务怎么把自己做的网站发布到网上
  • 专业建设网站哪个好wordpress3.8.1下载
  • 福州门户网站大连建站平台