PHP漏洞利用和渗透基础入门[2]

本文介绍了PHP的登录注入实例,通过一个具体的Mysql SQL语句构造过程展示了如何利用#号进行注入。同时,文章提出了加强方案,包括替换敏感字符和使用PDO分两次执行SQL语句,以提高系统的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

登录注入实例

提示:了解Mysql和php可能更容易理解
构造Mysql语句时利用一些方法使某些不应该返回的数据返回或者执行某种不该执行的命令 这个过程就叫注入
那我们来举个例子:

$sql='select * from users where userName='$userName' and password='$password';

代码逻辑(建议阅读)来自: https://blog.youkuaiyun.com/qq_39630587/article/details/79768838

假如我们想登录username为1的用户
我们应该怎么构建的sql语句???
如下例子

select * from users where userName=1 and password=正确密码 
select * from users where userName=1

当然我们不知道正确密码我们可以试试第二种怎么实现(屏蔽 and password=xxx
mysql怎么实现注释屏蔽那?? 答案就是#号就是注释号 # 后面的内容都被注释 yes!! 我们找到了 现在开始构造语句

select * from users where userName=1 # and password=xxx
这个语句等效于
select * from users where userName=1

那么我们怎么又不是去提交sql语句给后端
我们看看后端代码

<?php
    include_once("function/database.php");
    // $userName = $_POST['userName'];
    // $password = $_POST['password'];
    $userName = addslashes(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值