一:html注入 get
HTML注入,就是当用户进行输入时,服务器没有对用户输入的数据进行过滤或转义,导致所有输入均被返回前端,网页解析器会将这些数据当作html代码进行解析,这就导致一些恶意代码会被正常执行。
首先进行简单测试,输入1 1 发现正常回显
查看源码进行分析,发现没有做任何处理与过滤
那接下来我们直接试一下xss,输入<script>alert(111)</script>
发现有弹窗,证明这个网页过滤不严,那接下来我们试一下超链接输入
<a href="http://www.baidu.com">111</a>
发现这里多了一个可点击的超链接,点上之后就会跳转到百度
二:html注入 post
测试过程中要注意GET请求与POST请求的不同,注意传入参数方式,其他部分与GET请求部分基本相同
查看源码
没什么过滤操作,那我们直接试一下xss和网页跳转
输入<a href="http://www.baidu.com">111</a>点击就跳转百度
三:html注入 url
正常在url输入内容,会发现它会编码,然后返回编码的值导致代码不执行,那这样我们开启burp抓包拦截,里面果然进行了编码,那这时我们在抓包里把编码的值改为原本输入的内容
最后放行即可执行xss代码
四:html注入 stored 存储型
一进页面就有一个输入框类似留言或评论的那种,那我们直接在框里进行测试输入xss代码发现直接执行,在刷新这个页面时,这个代码会再次被执行,证明这是存储型
五:iframe 注入
进页面后发现在url里有三个参数
为url WIDTH HEIGHT
其他没有可输入的地方,那我们在地址框里把url后面的内容改为http://www.baidu.com试一下,发现确实能连到百度,只不过百度拒绝了访问
所以这里有一个iframe漏洞,因为我们可以通过这个url访问其他的地方
六:OS command 注入
这关一进去是一个域名检测,检测域名,那接下来进行简单测试,在域名后面输入 管道符后再跟命令, 例如 www.nsa.gov | whoami
那就证明这个页面存在命令执行漏洞
七:OS command 盲注
这关为盲注,加命令执行,在页面的输入框内我们直接进行简单测试
输入 127.0.0.1 | sleep 5
如果这个命令是5秒后被执行,那就证明后面的命令被执行了。这就证明存在命令执行漏洞
八:PHP code 注入
进页面查看没有输入框,那就从url下手
查看源码
发现开发人员使用 PHP 函数并向其传递攻击者可以修改的不受信任的数据时,PHP 代码注入可能是可能的。使用 eval() 函数是一种危险的方式,因为用户可以在消息参数中提供任何恶意输入,并且它将作为代码执行,因为 eval 函数中没有输入验证。 现在,在这个挑战中,我们可以使用任何PHP命令,那接下来我们在url框里把text改为一个简单的php代码phpinfo()试一下。
发现代码被执行,因为这里系统使用的是PHP,所以我们将以某种方式注入一些php代码/命令。如果服务器不清理我们的输入,我们可以利用并执行异常活动
九:服务器端包含 (SSI) 注入
SSI是英文Server Side Includes的缩写,翻译成中文就是服务 器端包含的意思。从技术角度上说,SSI就是在HTML文件 中,可以通过注释行调用的命令或指针。SSI具有强大的功 能,只要使用一条简单的SSI 命令就可以实现整个网站的内容 更新,时间和日期的动态显示,以及执行shell和CGI脚本程序 等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、 工作量大的网站开发人员的最佳帮手。 ps:(Server-side Includes) 服务器端包含提供了一种对现有 HTML文档增加动态内容的方法。apache和iis都可以通过配 置支持SSI,在网页内容被返回给用户之前,服务器会执行网 页内容中的SSI标签。在很多场景中,用户输入的内容可以显 示在页面中,比如一个存在反射XSS漏洞的页面,如果输入的 payload不是xss代码而是ssi的标签,服务器又开启了ssi支持 的话就会存在SSI漏洞
当我们在这个页面输入xss代码时就会被执行
十:sql 注入 search
进去之后是搜索框
查看源码
简单测试 1‘order by # 当测试到第8列时显示报错
接下来测试能够回显字段的列项,构造payload为1' and 1=2 union select 1,database(),3,4,5,6,7#
发现只有2,3,4,5能够回显且得到数据库的名字为bwapp