phpwindxss的简单介绍

hacker|
120

文章目录:

php网站怎样防御xss攻击?

过滤用户输入的script/script以及其他的HTML标签等。。

什么是phpinfo xss跨站脚本攻击漏洞?

php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。phpinfo()是用来显示当前php环境的一个函数,许多站点和程序都会将phpinfo放在自己的站点上或者在程序里显示,但是phpinfo里存在一些安全问题,导致精心构造数据就可以产生一个跨站脚本漏洞,可以被用来进行攻击。

漏洞成因: phpinfo页面对输入的参数都做了详细的过滤,但是没有对输出的进行charset的指定,而在一些浏览器里如IE7里,你可以让它自动选择编码或者通过一个iframe页面给它指定编码,这样就可以饶过phpinfo的过滤而产生一个跨站脚本漏洞。

漏洞来源:

漏洞利用: 利用代码如下:

html

head

META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-7"

/head

body

iframe src=";+ADw-/SCRIPT+AD4-=1"

以上代码在IE7+php 5.2.6测试成功。phpinfo页面的xss甚至比其他页面更加危险,因为如果有phpinfo的存在,恶意攻击者可以利用phpinfo的输出bypass如httponly和一些基础认证。

漏洞影响: 影响所有版本的php和浏览器IE7

漏洞修补: 建议暂时删除站点的phpinfo页面避免被人利用。

php下怎样防止XSS攻击

在PHP中修补XSS漏洞,我们可以使用三个PHP函数。

这些函数主要用于清除HTML标志,这样就没办法注入代码了。使用更多的函数是htmlspecialchars() ,它可以将所有的""与""符号转换成"" 与"gt;"。其它可供选择的函数还有htmlentities(), 它可以用相应的字符实体(entities)替换掉所有想要替换掉的特征码(characters)。

PHP Code:

?

// 这里的代码主要用于展示这两个函数之间输出的不同

$input = 'scriptalert(1);/script';

echo htmlspecialchars($input) . 'br /';

echo htmlentities($input);

?

htmlentities()的另一个例子

PHP Code:

?php

$str = "A 'quote' is bbold/b";

echo htmlentities($str);

echo htmlentities($str, ENT_QUOTES);

?

第一个显示: A 'quote' is bbold/b

第二个显示:A 'quote' is bbold/b

htmlspecialchars()使用实例

PHP Code:

?php

$new = htmlspecialchars("a href='test'Test/a", ENT_QUOTES);

echo $new;

?

显示: a href='test'Test/a

strip_tags()函数代替.删除所有的HTML元素(elements),除了需要特别允许的元素之外,如:i, b 或p.

strip_tags()使用实例

PHP Code:

?php

$text = 'pTest paragraph./p!-- Comment -- Other text';

echo strip_tags($text);

echo "\n";

// allow p

echo strip_tags($text, 'p');

?

现在我们至少已经知道有这些函数了,当我们发现我们的站点存在XSS漏洞时就可以使用这些代码了。我最近在我的站点上的GoogleBig(一个Mybb论坛的插件)视频部分发现了一个XSS漏洞,因此我就在想如何使用这些函数写段代码来修补这个搜索漏洞。

首先我发现问题出在search.php这一文件上,现在让我们看看这个查询及输出查询结果中的部分代码研究一下:

PHP Code:

function search($query, $page)

{

global $db, $bgcolor2, $bgcolor4, $sitename, $io_db, $module_url, $list_page_items, $hm_index;

$option = trim($option);

$query = trim($query);

$query = FixQuotes(nl2br(filter_text($query)));

$db-escape_string($query);

$db-escape_string($option);

alpha_search($query);

...

在这种情况下,我们通过使用$query这一值作为变量,然后使用htmlentities()这一函数:

PHP Code:

$query = FixQuotes(nl2br(filter_text(htmlentities($query))));

如果你对这三种函数还有有疑问可以使用PHP手册来查看:

黑客入侵攻击的一般有哪些基本过程

1、信息收集

1.1/ Whois信息--注册人、电话、邮箱、DNS、地址

1.2/ Googlehack--敏感目录、敏感文件、更多信息收集

1.3/ 服务器IP--Nmap扫描、端口对应的服务、C段

1.4/ 旁注--Bing查询、脚本工具

1.5/ 如果遇到CDN--Cloudflare(绕过)、从子域入手(mail,postfix)、DNS传送域漏洞

1.6/ 服务器、组件(指纹)--操作系统、web server(apache,nginx,iis)、脚本语言

1.7/ More.

2、漏洞挖掘

2.1/ 探测Web应用指纹--Discuz、PHPwind、Dedecms、Ecshop...

2.2/ XSS、CSRF、XSIO、SQLinjection、权限绕过、任意文件读取、文件包含...

2.3/ 上传漏洞--截断、修改、解析漏洞

2.4/ 有无验证码--进行暴力破解

2.5/ More..

3、漏洞利用

3.1/ 思考目的性--达到什么样的效果

3.2/ 隐藏,破坏性--根据探测到的应用指纹寻找对应的EXP攻击载荷或者自己编写

3.3/ 开始漏洞攻击,获取相应权限,根据场景不同变化思路拿到webshell

1条大神的评论

  • avatar
    访客 2022-07-04 下午 06:59:36

    HP手册来查看:黑客入侵攻击的一般有哪些基本过程1、信息收集1.1/ Whois信息--注册人、电话、邮箱、DNS、地址1.2/ Googlehack--敏感目录、敏感文件、更多信息收集1.3/ 服务器IP--Nmap扫

发表评论