栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

sql注入产生的原因(sql注入命令)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

sql注入产生的原因(sql注入命令)

SQL注入核心:用户输入的数据被当做数据库代码执行

一,寻找SQL注入

寻找SQL注入是看当前页面与数据库交错的点,如 id=1

二,判断是否存在注入

先查看 id=2 页面的内容,然后id=3-1 看看回显的页面是不 id=2 的页面,如果是说明存在SQL注入

三,判断字段数

order by 1(正常) order by 2(正常)order by 3(异常)说明仅仅存在两个字段

判断字段数的目的是:让后面的联合查询语句的显错位和字段数相同,如果和字段数不相同会报错

四,判断显错位

?id=1 and 2=1 union select 1,2通过配和联合查询知道几个字段数几个显错位,and 2=1 语句是为了让前面报错,后面的联合查询语句数据出来。

判断显错位是为了,命令在显错位才能被执行,1(填充位),2(显错位)

五,查询命令

(一)查询库名 ?id=1 and 2=1 union select 1,database() 就可以查询库名

information_schema(mysql数据库5.0及以上版本,自带数据库,他记录了mysql数据库下所有的数据库名,表名,列名信息),大多数常见的数据库里面都会自带这一个库

table_name  表名信息
table_schema (数据库名)

里面记录了一些信息(这里我就不开虚拟机了,上面的的table_name和table_schema,都是在这个数据库存在的)

(二)查询表名

union select 1,table_name from information_schema,tables where table_schema='库名'

因为通过前面的语句查到库名所以这里的意思是:库名等于(查询的库的名字)的表是哪个

因为一个库里有很多表

所以查看其他表里的内容用

limit 0,1 这是查看第一条内容

limit 1,1 这是查看第二条的内容(以此类推)(还有一个查询的语句,但是楼主不常用也忘了,用limit 很保险)

(三)查询字段名

column_name (字段名) 这个也是information_schema库里的(有兴趣的小伙伴可以自己去查看)

union select 1,column_name from information_schema.columns where table_name='表名' table_schema='库名'

因为通过前面查询到了表名和库名,所以直接可以查询字段名,查看其他字段还是用 limit

(四)查询数据

union select 1,(字段名)from (表名)就可以直接查询数据

六,SQLmap(工具)

用sqlmap前要装一个python的环境,这个工具是基于python开发的(这里简单的介绍sqlmap,后面如果有时间在细讲)

就是这样的一个工具,可以跑出存在什么库,表,字段,数据

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772612.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号