必威体育Betway必威体育官网
当前位置:首页 > IT技术

SQL注入基础:10.XFF注入

时间:2019-08-26 08:13:15来源:IT技术作者:seo实验室小编阅读:77次「手机版」
 

xff

sql注入基础:10.XFF注入

10.1 XFF注入攻击

X-Forwarded-For简称XFF头,它代表了客户端的真实IP,通过修改他的值就可以伪造客户端IP。

1)判断是否存在注入

使用Burp的repeater模块对请求进行修改,分别修改X-Forwarded-For的值如下所示:

X-Forwarded-for: 127.0.0.1

X-Forwarded-for: 127.0.0.1’

X-Forwarded-for: 127.0.0.1' and 1=1#

X-Forwarded-for: 127.0.0.1' and 1=2#

访问的结果如下,说明存在SQL注入漏洞

2)查询字段数量

判断出字段数量是:4。

查询SQL语句插入位置。

3)查询数据库库名

(1)查询当前数据库库名

(2)查询所有数据库库名

像这样,构造不同的union注入语句,就可以得到完整的数据库库名,表名,字段名和具体数据。

10.2 XFF注入PHP代码

<?php
header("content-Type:text/html;charset=utf8");
$con=mysqli_connect("localhost","root","root","bank");
mysqli_set_charset($con,'utf8');
if(!$con){
  echo "Connect failed : ".mysqli_connect_ERROR();
}

if(getenv('HTTP_CLIENT_IP')) {
    $ip = getenv('HTTP_CLIENT_IP');
  } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
    $ip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif(getenv('REMOTE_ADDR')) {
    $ip = getenv('REMOTE_ADDR');
  } else {
    $ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
  }

$sql="select * from login_ip where ip='$ip'";
$result=mysqli_query($con,$sql);
$row=mysqli_fetch_array($result);
if ($row) {
	echo "id:".$row['id']."<br>";
	echo "用户名:".$row['name']."<br>";
	echo "登录地:".$row['address']."<br>";
}else{
	echo "您正在新机器上登录账号,请确定是否为本人操作!";
}

echo '<hr><br>';
echo "查询的语句是:$sql";
?>

相关阅读

15款最佳的MySQL管理工具和应用程序

【转】15款最佳的MySQL管理工具和应用程序@TOC工欲善其事,必先利其器。几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人

C# 多线程编程实战(一)--线程基础

C#多线程编程实战(一):线程基础1.1 简介多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力

MySQL nullif()函数

转载自   MySQL nullif()函数 MySQL NULLIF函数简介 NULLIF函数是接受2个参数的控制流函数之一。如果第一个参数等于第二个参

电商基础(一):跳出率和退出率

跳出率和退出率分别指什么,又有什么区别呢?阅读本文前,请先思考以下几个问题:跳出率和退出率的定义是什么?跳出率和退出率的差别在哪里

MySql : varchar 和varchar 的区别

mysql int(10)的含义int(M) M表示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关。 在 int

分享到:

栏目导航

推荐阅读

热门阅读