SQL注入1(南邮CTF)

链接*————————————————————————-
这里写图片描述

提示看源码:

<html>
<head>
Secure Web Login
</head>
<body>
<?php
if($_POST[user] && $_POST[pass]) {
    mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);
  mysql_select_db(SAE_MYSQL_DB);
  $user = trim($_POST[user]);
  $pass = md5(trim($_POST[pass]));
  $sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";
    echo '</br>'.$sql;
  $query = mysql_fetch_array(mysql_query($sql));
  if($query[user]=="admin") {
      echo "<p>Logged in! flag:******************** </p>";
  }
  if($query[user] != "admin") {
    echo("<p>You are not admin!</p>");
  }
}
echo $query[user];
?>
<form method=post action=index.php>
<input type=text name=user value="Username">
<input type=password name=pass value="Password">
<input type=submit>
</form>
</body>
<a href="index.phps">Source</a>
</html>

看这个

if($query[user]=="admin") {
      echo "<p>Logged in! flag:******************** </p>";

题目有两个输入框,一个user一个密码,要求user为admin,所以要想办法避免密码的验证,看源码$sql="select user from ctf where (user='".$user."') and (pw='".$pass."')"; 可以在输入的user做手脚,把后面的注释掉,同时别忘了闭合这一语句,输入 admin‘)#即可,因为#后面都被注释了,原来的后括号也没了,所以要补上括号。

flag
这里写图片描述

CTF(Capture The Flag)是一种信息安全竞赛,通常包含各种类型的信息安全挑战,其中SQL注入(SQL Injection)是一种常见的web安全攻击技术。在CTF的web安全挑战中,选手需要利用网站应用程序的漏洞执行SQL注入攻击,目的是从数据库中获取敏感信息。 SQL注入攻击的核心是利用用户输入与数据库交互时的不当处理,注入恶意的SQL语句。通过这种注入,攻击者可以控制数据库的查询过程,执行包括但不限于数据检索、修改、删除甚至数据库命令的执行等操作。 在CTF中,解决SQL注入问题通常包括以下几个步骤: 1. 发现注入点:选手需要通过各种手段(如测试特殊字符、逻辑判断、时间延迟等)来判断用户输入是否被直接插入到SQL查询中。 2. 构造注入payload:一旦找到注入点,选手需要构造特定的SQL语句来利用这个漏洞,这通常包括逻辑判断、联合查询、子查询等技术。 3. 数据提取:通过构造的SQL注入语句,选手可以提取数据库中的敏感信息,如用户数据、密码哈希值等。 4. 提取flag:在CTF竞赛中,通常存在一个包含“flag”的数据项,选手需要将获取的数据与flag格式对比,最终提交正确的flag格式以获得分数。 SQL注入攻击是非法的,在实际操作中,了解和学习SQL注入是为了更好地保护自己的网站免受此类攻击,而在CTF竞赛中,这种攻击则是为了学习和提高网络安全技能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值