SQLI Lab: 第一章第一课

这个系列会从头详细整理一些关于sql注入的东西。主要以sqli lab为实验。

首先开始第一个lesson,参考了博客(https://blog.csdn.net/u012763794/article/details/51207833):

在url后输入?id=1 可以得到正常输出,就是表中id为1的数据。为了理解方便,我改动了PHP源码使得网页会返回sql语句。

在1之后输入单引号,我们可以看到错误提示。

首先我们用union语句来遍历表的列数。Union语句可以将几个搜索结果合并在一起,但前提是几个结果的列数要一致。如果几个搜索结果的列数不一致就会报错。所以我们可以用union语句来遍历出表的列数:

127.0.0.1/sqli-labs7/Less-1/?id=1' union select 1

输入union语句,我们可以看到数据库报出了语法错误。

为了解决这个问题我们需要把语句之后的limit注释掉。如果直接在url中输入#,#会被转码成其他字符:

我们用%23代替#(#ascii码的hex是23):

select 1的时候可以看到数据库报错说列数不对,所以我们继续尝试。尝试到3的时候页面可以正常返回,这说明这个表有三列:

Limit的作用是返回搜索结果中的前几个。比如说Limit 0,1中,0是offset就是从第0个数开始算。1是返回的数量。所以Limit 0,1就是返回结果中的第一列。比如结果是{1,2,3,4},limit 0,1之后的结果就是1,limit 1,2的结果就是2,3,即跳过第0个数,之后的两个结果。

但是我们在上面这个语句中把limit给注释掉了,同样的语句在mysql中跑应该会得到这样的结果:

为什么网页只有第一行的结果呢?

查看PHP源码:

看到mysqli_fetch_array函数只被调用了一次,这个函数会取出一行数据库查询的结果。所以不管我们的sql语句怎么变,网页只会返回查询结果的第一行。

为了能看到我们输入语句的结果,我们需要让我们的结果作为查询结果的第一行返回。其中一个方法是将第一个查询的结果变成空,比如说输入一个不存在的id:

这样就可以显示之后的查询结果了。

由于我们只能输出两个查询的数据,所以我们必须要将多个查询的结果合并成一条返回。SQL语句中的concat函数。它可以将多个查询合并到一条返回

如果想要在每个结果中间加入分隔符,我们可以用concat_ws( concatenate with separator), 

用这个函数,我们就可以在我们的union语句中查询出数据库的信息,输入url:http://127.0.0.1/sqli-labs7/Less-1/?id=-1%27%20union%20select%201,2,concat_ws(char(32,58,32),user(),database(),version());%20%23

user()返回数据库用户的用户名;

database()返回当前使用的数据库名;

version()是当前数据库的版本

接下来我们要找到这个数据库中其他的表名。要得到这个,我们需要利用information_schema 这个数据库。这是一个系统数据库,里面有当前各个数据库、表、列、用户权限等的信息。转几个常用的表的功能:

SCHEMATA表:储存mysql所有数据库的基本信息,包括数据库名,编码类型路径等,show databases的结果取之此表。TABLES表:储存mysql中的表信息,(当然也有数据库名这一列,这样才能找到哪个数据库有哪些表嘛)包括这个表是基本表还是系统表,数据库的引擎是什么,表有多少行,创建时间,最后更新时间等。show tables from schemaname的结果取之此表COLUMNS表:提供了表中的列信息,(当然也有数据库名和表名称这两列)详细表述了某张表的所有列以及每个列的信息,包括该列是那个表中的第几列,列的数据类型,列的编码类型,列的权限,猎德注释等。是show columns from schemaname.tablename的结果取之此表。--- 作者:giantbranch 来源:CSDN 原文:https://blog.csdn.net/u012763794/article/details/51207833 

注意在information_schema中查询的时候where语句后面不能直接跟英文。要将英文前后加上单引号或者用16进制表示。

将查询语句放到sql注入中执行:

可以看到依然只能返回一个结果。我们可以用limit的offset来遍历所有表名:

但遍历超过范围时,将不会返回查询结果:

这样我们就可以得到所有四个表名。

接着,用colums表我们可以得到users表中的列名:

知道了列名,我们就可以遍历得到admin的密码:


用一个python脚本来执行结果:https://github.com/SevenWen/SQLiLab/blob/master/sqliLab1.py

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 一、MySQL架构与历史 A.并发控制 1.共享锁(shared lock,读锁):共享的,相互不阻塞的。 2.排...
    阿休阅读 4,638评论 0 37
  • web应用程序会对用户的输入进行验证,过滤其中的一些关键字,这种过滤我们可以试着用下面的方法避开。 1、 不使用被...
    查无此人asdasd阅读 7,266评论 0 5
  • 雪在北方是最常见的,在南方是稀罕物。 下的如此之大实属罕见。早晨起床外面白茫茫一片,各自找景拍照堆雪人。 雪,一片...
    土狼豆阅读 280评论 0 1
  • 部门重要工作 欢迎新员工:刘颖,自我介绍大家介绍。 关于杂志问题:晓龙对接杂志本次编排方式,逆向由晓龙确定题目,大...
    泼猴阅读 129评论 0 1
  • 老家是贫困地区,很多年前国家就在拨大量扶贫款给当地政府,但是越扶越贫。政府把扶贫款发放给村民后,大部分人在短时间就...
    zhang老三阅读 158评论 0 0