SQL injection 之(基础篇)

admin 2018年5月6日16:47:07评论596 views字数 1066阅读3分33秒阅读模式
摘要

上面是一段很简单的PHP 代码 就是连接数据库 然后 通过GET接收ID参数
$sql = ‘select * from admins where id =’.$id;
这里并没有对ID参数进行过滤 直接进入数据库 就导致SQL注入的产生


0x01:前言

 上篇文章我们对sql注入漏洞有了一定得原理了解,所以我们这边文章将大家一些基础语法吧! 

0x02:分析和利用

code: <?php $db = mysql_connect('127.0.0.1','root','root'); $id = $_GET['id']; $sql = 'select * from admins where id ='.$id; mysql_query($sql,$db); ?>

上面是一段很简单的PHP 代码 就是连接数据库 然后 通过GET接收ID参数
$sql = ‘select * from admins where id =’.$id;
这里并没有对ID参数进行过滤 直接进入数据库 就导致SQL注入的产生

code: <?php $db = mysql_connect('127.0.0.1','root','root'); $id = $_Request['id']; if(empty($_GET)){ $id = addslashes($id); } $sql = 'select * from admins where id ='.$id; mysql_query($sql,$db); ?>

上面中的代码 我们看到了 对ID 参数进行 addslashes 函数进行部分字符转义
但是我们 又看到了 $_Request 全局变量 我们知道这个变量可以 GET POST cookie 进行参数
所以 利用POST or cookie 进行参数 就简单就绕过了 addslashes 函数

code: <?php $db = mysql_connect('127.0.0.1','root','root'); $id = $_GET['id']; if(empty($_GET)){ $id = addslashes($id); } $sql = 'select * from admins where id ='.$id; mysql_query($sql,$db); ?>

和第二段代码不同的是 我们直接把 $_Request huanc换成了 GET 那我们真的没有办法进行注入了吗?
我们知道 addslashes 对 单引号 双引号 还有反斜杠进行转义 上面代码注入 无需用到单引号 所以
我们直接就可以注入 嗯,,我们在这里只是对代码分析然后如何利用

0x03 后言

本来的简单的分析了一下代码 然后如何进行注入 但是没有告诉大家注入语法 所以在下篇当中告诉大家注入语法 谢谢

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2018年5月6日16:47:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SQL injection 之(基础篇)https://cn-sec.com/archives/50518.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息