提示看源码:
<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
本文通过一个具体的PHP登录页面源码实例,详细介绍了如何利用SQL注入漏洞绕过密码验证过程,实现非法登录并获取敏感信息(flag)的过程。文章展示了如何构造特定的用户名输入(admin‘)#),以此来关闭后续的SQL查询条件,成功避开密码验证。
3252

被折叠的 条评论
为什么被折叠?



