专栏首页月萌PHP渗透基础入门其一

PHP渗透基础入门其一

利用一些方法使某些不应该返回的数据返回或者执行某种不该执行的命令,这个过程就叫注入,这里有个很简单的事例

提示:了解Mysql和php可能更容易理解 那我们来举个例子: 这个语句拼接方式如下

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

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

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

   select * from users where userName=1

俩种代码等效

当然我们不知道正确密码我们可以试试第二种怎么实现。 那么我们又不是去提交sql给后端 那么参数会被处理 我们看看后端代码

    <?php include_once("function/database.php"); 
   // $userName = $_POST['userName']; 
 // $password = $_POST['password'];       $userName = addslashes($_POST['userName']); 
  $password = addslashes($_POST['password']); getConnect(); 
 $loginSQL = "select * from users where userName='$userName' and password='$password'"; ..... 

(省略 )我们提交的账户就是变量 userName 密码就是变量 password 但是这里使用addslashes函数(函数过滤了 单引号(’)双引号(")反斜杠()) 呵???那么我们可以名正言顺的屏蔽 and password=xxx 注释我们可以使用/**/ 这样可以绕过过滤 username填写 1/* password */ 然后就成功啦

加强方案

1.替换参数各种敏感字符(# ’ or and 等) 仅仅用addslashes函数是不安全的 保证参数的安全

2.使用pdo分两次发生sql语句 99.9%的安全 其中不安全原因来自于配置问题进行编码边缘操作 提示

现在程序的php sql注入几率很小,加上如果使用pdo 就基本不可能了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用jsDelivr做免费CDN

    使用方法: https://cdn.jsdelivr.net/gh/github用户名/仓库名@版本号/文件地址 比如: //比如这张图片 https://cd...

    月萌
  • 数据库底层实现-B+树

    B+树是一种应用广泛的树型数据结构,通常用于数据库(例如Mysql 但是k-v模型非关系库数据库是基于哈希表 比如redis memcached)和操作系统的文...

    月萌
  • typecho客户端南博XmlRpc一键更新插件

    插件主要为南博的xmlrpc提供更新,回滚和获取新版都非常方便,原理是通过github api获取打包信息,然后使用php解析生成列表,选择更新版本后,直接拉取...

    月萌
  • PHP渗透基础入门其一

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

    乔千
  • 数据库: Python连接数据库实现增 删 改 查 操作

      "insert into userinfo "+ " values(1,"+"'"+ "yang" +"'"+ "," +"'"+"11223344"+"'...

    杨奉武
  • 实施双模式IT时需避免的7个常见错误

    由于许多IT团队都在努力应对来自业务的日益增长的需求,双模式IT正在流行开来,这是一种平衡的方式,以保持在成功的数字转换过程中提供创新的新应用程序。

    用户1169992
  • windows Apache服务器简单配置虚拟域名(转载)

    #<VirtualHost *:80> #    ServerAdmin webmaster@dummy-host2.example.com #    Docu...

    lin_zone
  • Kubernetes对Container Capabilities的支持

    Docker Container Capabilities 在docker run命令中,我们可以通过--cap-add和--cap-drop来给容器添加li...

    Walton
  • C和Go相互调用

    C可以调用Go,并且Go可以调用C, 如果更进一步呢, C-->Go-->C 或者 Go-->C-->Go的调用如何实现?

    李海彬
  • 由Infor ERP LN中来料检验标志设置,说说懂业务的IT多重要

    大学的时候,其实有志于学习的是计算机硬件和网络方面的技术,大学里在建筑系的机房勤工俭学做网管近1年,后来第一份工作的前半年也是搞搞网络、电脑系统、打印机啥的,直...

    崔文远TroyCui

扫码关注云+社区

领取腾讯云代金券