0x01 相关知识
1.什么是xss?
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
2.xss的类型?
(1)持久型跨站:最直接的危害类型,跨站代码存储在服务器(数据库)。存储型
(2)非持久型跨站:反射型跨站脚本漏洞,最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。反射型
(3)DOM跨站(DOM XSS):DOM(document object model文档对象模型),客户端脚本处理逻辑导致的安全问题。DOM型
3.xss的危害?
如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。
0x02 漏洞利用
1.首先在id参数后面输入1111111111
http://192.168.72.136/control/xss/filter_xss.php?id=111111111111
2.F12 ctrl+f搜索1111111
3.发现不用闭合直接输入<script>alert(1)</script>
http://192.168.72.136/control/xss/filter_xss.php?id=<script>alert(1)<script>
发现被过滤
4.判断过滤参数
在url后面输入<script>
http://192.168.72.136/control/xss/filter_xss.php?id=<script>
发现依然是弹窗提示请不要包含恶意参数
5.我们大胆一点直接输入script 发现依然是弹窗提示 而输入< 则没有提示。alert也没有提示,我们已经明确了目标
6.我们尝试把script的大小写改变绕过试一下:ScRiPt
发现还是提示恶意参数 ,那么这样一来script可能就不能使用了
7.换一种方法,让页面加载直接弹框 我们需要用到body标签和onload这个属性配合:
<body οnlοad=alert(1)>
发现成功弹窗:
8.再换一种方法,利用img标签和onerror属性配合
<img src=1 οnerrοr=alert(document.cookie)>
9.得到flag:
10.flag复制粘粘:fsdafasdfas
11.有意思的来了 提交之后flag错误:
贴出真实flag:poipjklkjppoi
12.我们看看原因:首先我们顺便看了看他是如何过滤script的
原来是这样:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。
然后我们突然发现了一个特点:这个flag好像有点眼熟:这不是“反射型xss”的flag吗
13.纠错:
原来是这条where过滤问题,我们把9改成 13
ok 纠错完成:
0x03 结语
我们发现确实不难,但是确实可以学到东西