XXE的利用姿势 读取任意文件 有回显 测试代码如下 ]> &a2; 内网探测 当我们获取到一个内网ip地址时,如果有回显,可以在浏览器访问根据访问时间和回显来进行判断...靶场自带的就是有回显的,源代码如下 方法同之前即可,此时我们就找有回显的点,然后将我们想读取的文件作为实体参数的内容,调用实体参数,此时输出结果就可以得到文件内容 构造payload如下 回显 把靶场的输出信息给注释了就是无回显了 随便输入一下然后抓包 测试一下 此时是无回显的,这就对应了Blind XXE的情况,此时可以利用外带和伪协议来获取文件内容,具体方式如下
负数 - 在从字符串结尾开始的指定位置开始 0 - 在字符串中的第一个字符处开始,(n-1) #环境代码: php; 回显结果: 你好厉害呀~~~ 条件达成但是并没有回显flag 考虑到题目名称和题目简介以及环境代码中的include文件包含函数 猜测需要用到php://filter伪协议来绕过文件包含...=flag.php转换到flag.php文件中,就是说把flag.php文件转换为base64编码格式 上传payload 回显结果: 你好厉害呀~~~PD9waHAKJGZpbGVfcGF0aCA9ICIvZmxhZyI7CmlmIChmaWxlX2V4aXN0cygkZmlsZV9wYXRoKSkgewogICAgJGZsYWcgPSBmaWxlX2dldF9jb250ZW50cygkZmlsZV9wYXRoKTsKfQplbHNlewogICAgZWNobyAiZXJyb3IiOwp9Cg...( file_path); #file_get_contents() 函数把根目录下的flag整个文件读入一个 flag字符串中, flag定义的flag变量 } else{ #反之 echo “...if循环判断语句中,检擦到 file_path参数变量/flag根目录下的flag文件存在,继续向下执行 file_get_contents() 函数把根目录下的flag整个文件读入一个 flag字符串参数中
根据这篇文章:`http://www.am0s.com/functions/204.html` 可以得到一个字符串:ffifdyop 提交即可获得flag ## 神盾局的秘密 header里有猫腻: ?...,估计是不能用文件包含的,所以我们要用php伪协议post一个Data 对于变量b,关键是eregi用%00截断即可 而id是一个弱比较,用id=0a即可 ?...将udf文件放到/usr/lib/mysql/plugin/文件夹中: /usr/lib/mysql/plugin# wget https://dn.jarvisoj.com/challengefiles...当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时, 当PHP检测到这种POST请求时,它会在$_SESSION中添加一组数据。...有一个check功能,输入错误的密码会提示“Wrong Password!!”,查看源代码,有个app.js。将该js文件格式化后在里面查找字符串“Wrong Password!!”
() 函数把整个文件读入一个字符串中。...> php中的simplexml_load_string函数将xml格式字符串转换为对应的SimpleXMLElement xxe注入的思路 file_get_contents(“php://input...漏洞利用 有回显漏洞 回显的情况 ?...首先,我们看一下地址入口,页面是一个提交框,点击go后,把输入框输入的信息,提交到文本框中 看一下响应包中的提交数据包和响应包数据: 发现,提交数据是以json格式提交的数据。
file_get_content()函数把整个文件读入一个字符串中。...结合file_get_contents(php://input)可以读取POST提交的数据 simplexml_load_string函数介绍 php中的simplexml_load_string函数将...xml格式字符串转换为对应的SimpleXMLElement XML注入回显输出函数 在php中可以使用 print_r(),echo输出想要输出的内容 存在XXE漏洞代码 回显的情况 ?...[]( 其中php支持的协议会更多一些,但需要一定的扩展支持。 漏洞利用 有回显XXE漏洞利用 读取文档文件 <!
个设计,详细列出来方便各位读者阅读: 未收录 显示未收录,正在推送,推送后返回是否推送成功,并且显示推送加载图 已收录 显示百度已收录,并且不进行操作 UI 百度LOGO,Loading GIf,文字回显...为了更直观的展示BD_Curl函数,我单独将它放到了baidu_check.php文件,需要的时候直接include方便程序的编写。 YUN API Baidu_check php 同样也显示JSON字符串,便于后续的Ajax请求,以下是该PHP显示的JSON: { 参数 说明 code 1为收录,0没有收录 url 传入的url 同样地,你也可以选择使用file_get_contents...规定把请求发送到哪个 URL。 data 可选。映射或字符串值。规定连同请求发送到服务器的数据。 success(data, textStatus, jqXHR) 可选。请求成功时执行的回调函数。...默认执行智能判断(xml、json、script 或 html)。 例如下面一个简单的例子: GIF 了解完基础的Ajax后,我们就可以开始编写JS文件。
题目环境: 依此输入以下内容并查看回显结果 1+1 1’ index.php ls 到这里没思路了 F12查看源代码 一定要仔细看啊,差点没找到,笑哭 访问calc.php...num=a 正常回显: 回显报错: F12网页源代码是否忽略一些东西?...print_r()函数和var_dump()函数可以输出内容 靠这些还远远不够 还需要用到两个函数和一个方法 scandir() 函数返回指定目录中的文件和目录的数组,类似于Linux里面的“ls...file_get_contents() 函数把整个文件读入一个字符串中。 字符串转ASCII码chr()对应表 为什么PHP可以识别ASCII码chr()对应表?...%20num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103))) 这两个函数不同回显结果,
图片这里说是输入要CURL的网站,我尝试了一下使用www.baidu.com,然后查看了一下回显图片然后想到,我们最终要找的是flag,那我能不能输入一个flag.com或者flag.php图片然后发现了新的回显...,提示我们可以查看一下/fl4g这个文件,然后我又尝试了一下flag.php和flag发现都是可以的,都得到了这个回显。...图片得到了一个新的回显,这里我们需要注意一下啊,我们需要查看的文件时/fl4g,不是fl4g,不要傻乎乎的写一个file://fl4g,这样是得不到提示的。...然后我们更具提示的意思,因该是需要访问一下新的这个php网页。图片确实,我们也得到了一个新的页面。然后我们也发现了file_get_contents()这个函数,ssrf需要注意的一个函数。...我们分析一下这个代码,也就是我们要在url里面传入一个file的值,判断文件中是否包含"file"字符串 ,如果包含的话,输出 "你败了."
,因此存在命令注入,同时 flag 就在当前目录下的 falg.php 文件中。...图片 那就要抓包了,Brup 抓到的访问 action.php 时返回的数据如下,提示访问另一个文件。 html> <!...-- secr3t.php --> html> 那就老老实实打开这个文件看看,浏览器回显了一段代码并且提示 flag 就在 flag.php 文件中。...执行之后会在浏览器中回显一段 base64 加密的字符串,即后端 flag.php 文件内容的密文。...图片 前端好办,直接把 js 禁用就行了,再次上传,浏览器没有任何反应?调试发现回显在左上角,提示文件被禁止,因此后端还有过滤。
1' order by 2 # 成功回显 输入1' order by 3 # 回显错误 所以只有两个字段 0x03:显示字段 输入1′ union select 1,2 # 回显一个正则过滤规则...尝试堆叠注入 0x04:查询数据库 输入1';show databases;# 成功回显 说明存在堆叠注入 0x05:查询表 输入1';show tables;# 成功回显 得到两个表words...flag字段 现在常规方法基本就结束了,要想获得flag就必须来点骚姿势了 因为这里有两张表,回显内容肯定是从word这张表中回显的,那我们怎么才能让它回显flag所在的表呢 内部查询语句类似 :select...3.同时FileList类中存在call魔术方法,并且类没有close方法。...及上传图片,用bp抓包把nickname改成数组即可: 然后访问profile.php查看源码,把base64码解码: ikun【CISCN2019 华北赛区 Day1 Web2】 题目复现链接
从PHP代码层面上 最开始,引入一个file_get_contents函数,将整个XML数据读入data字符串中,然后交给php的xml解析函数simplexml_load_string()解析,解析后的数据赋给...危害1:读取任意文件 有回显情况 XML.php $xml = << ]> &f; EOF; data = simplexml_load_string(xml); print_r($data); ?...]> &xxe; %xxe;]> &evil; 外部evil.dtd中的内容。 当然也可以进行内网站点的入侵。 以上任意文件读取能够成功,除了DTD可有引用外部实体外,还取决于有输出信息,即有回显。...那么如果程序没有回显的情况下,该怎么读取文件内容呢?需要使用blind xxe漏洞去利用。...无回显的情况 blind xxe漏洞方案1: 对于传统的XXE来说,要求攻击者只有在服务器有回显或者报错的基础上才能使用XXE漏洞来读取服务器端文件,如果没有回显则可以使用Blind XXE漏洞来构建一条带外信道提取数据
/resource=useless.php 将浏览器回显的编码解码之后的 PHP 代码如下: SetHandler application/x-httpd-php 上传成功之后会回显文件路径以及目录中的文件,貌似上传文件夹还有一个 index.php...而要达到这个目的,还需要三个前提条件: 服务器脚本语言为 PHP 服务器使用 CGI/FastCGI 模式 上传目录下要有可执行的 PHP 文件 那就很有意思了,在此前文件上传成功的回显文件列表中,就一直存在一个...image/jpeg 后回显如下: 图片 这么针对 PHP,肯定过滤了 回显,因此布尔盲注完全可用,正好此处为数字型注入,直接传一个 if 表达式即可。
传入admin\ 和 or/**/length(database())>0#会回显stronger字样 传入admin\ 和 or/**/length(database())回显girl friend...文件探测 我太菜了,当时比赛的时候就卡到了代码审计的地方,现在拿着题再来复现下 buu平台:https://buuoj.cn/ 抓包发包看到了home.php,在文件头信息中也可以看到 ?...对于%d可以发现代码中的$method和%d是连起来的,可以用GET%s来格式化,还需要把%d转义掉,对于sprintf()函数,对百分号的转义是用2个%而不是反斜线 GET%s% 所以依次输入便可以查询到...session中,如果没有了session就没有了这个随机字符串,只要通过删除PHPSESSID将SESSION置空即可 可以来写一个算AES的脚本,我不会写,贴个其他师傅的 用的thinkphp 然后随便get提交了一个s的值,发现了这个Thinkphp的版本为5.0.23 ?
这里根据后续处理逻辑不同,还会分为回显型ssrf和非回显型ssrf,所谓的回显型的ssrf就是会将访问到的信息返回给攻击者,而非回显的ssrf则不会,但是可以通过dns log或者访问开放/未开放的端口导致的延时来判断...5.常见缺失函数 二、SSRF漏洞利用 1.函数 (1) file_get_contents 这个函数的名称很简单 就是获取文件的参数 file_get_contents() 把整个文件读入一个字符串中...该函数是用于把文件的内容读入到一个字符串中的首选方法 php echo file_get_contents("test.txt"); ?...> 输出:test.txt文本中所写的内容 (2)fsockopen() 这个函数的意思就是说可以从服务器获取用户的url数据 fsockopen函数实现获取用户制定url的数据(文件或者html)。...File:用File协议访问本地计算机中的文件,例如file:///etc/password.
原因是:在服务器上使用file_get_contents() 函数请求https 协议的url文件时会报错误,无法正确读取文件内容,在PHP中file_get_contents() 函数是用于将文件的内容读入到一个字符串中...主题模板有问题就解决,按照百度经验的教程有好几种方法来解决,有的说修改php.ini文件,在php.ini文件里找到 ;extension=php_openssl.dll ,去掉前面的分号“;”,然后重启...web服务器即可,如果是apache服务器可以同时启用mod_ssl模块测试以上内容给大家分享了两种方法解决PHP中file_get_contents函数抓取https地址出错, 跳过HTTPS验证:...($stream_opts)); 如上代码,估计是好用的,但是我并没有测试,因为错误是偶尔出现,所以没办法测试,其中“response”自定义函数,可以直接替换导航主题incloud.php文件中的“html...incloud.php文件,复制如上代码,将其放在“function navlee_bdhotword()”之前,在代码中找到“html = file_get_contents('https://top.baidu.com
正确的做法是: 把错误日志写到日志文件中,方便排查问题。 2、屏蔽PHP版本。...开启方法是在php.ini中修改如下: register_globals=On 建议关闭,参数如下: register_globals=Off 当关闭后,就只能从_POST、_GET、 4、文件系统限制...phpecho file_get_contents('/etc/passwd'); 当设置了后则会报错,不再显示相关信息,让系统目录b不会被非法访问: PHP Warning: file_get_contents...第一部分是一个用于PHP核心的补丁,它能抵御缓冲区溢出或者格式化串的弱点(这个必须的!); 第二部分是一个强大的 PHP扩展(扩展模式挺好的,安装方便…),包含其他所有的保护措施。...,可以来检测上传的内容是否包含webshell特征 使用Suhosin,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意的日志文件中去;它还可以为每一个虚拟主机创建黑名单和白名单
url=ZG93bmxvYWQucGhw(download.php 的 base64 编码) 把 download.php 下载下来了,然后发现里面有三个.php 文件 ? 不能直接传 ?...> 首先 $_GET 传进两个变量,首先会经过 sanitize 进行处理,处理的过程大概就是将传入的字符串分割成一个一个的字符,然后看看在不在 $valideChar 里面,如果在的话就正常返回值...因为 0exx 都等于 0,所以让两者相等我们只需再找到一个 MD5 加密后开头为 0exxx 的字符串即可 需要注意的是,第一个参数是不经过 MD5 的,所以需要直接传入 0exxx 开头的,足够 32...c;$d` 针对空格过滤,可以使用: ${IFS} < (也被过滤了) $IFS $IFS$9 来代替,但是考虑到在一串字符串中,所以使用 ${IFS} 来代替空格 ?...cmd=helper()$who 可以看到是有 flag 回显的,但是这里再往下就不会了 Orz... ?
尝试提交 id参数为swp,回显:不是这里不是这里不是这里!!!。 注意到此时的链接为 /1ndex.php?...id=1' 回显空白 -> 可能为单引号闭合 ?id=1'--+ 回显正常 -> 单引号闭合方式 ?id=1' and 1=1--+ 回显空白 -> 可能过滤了and ?...结合游记内容推测可能为snow HTML隐写(可以在ASCII文本的末行隐藏数据,并且可以通过插入制表位和空格使嵌入的数据在浏览器中不可见),使用BurpSuite抓取该页面内容保存至1.html(尝试从...C:\Users\light\Desktop>SNOW.EXE -C -p ILOveExp 1.html flag in /PPPPOOO0CCCC.php 结合在hlnt_2表中获取的Hint2:..."; } 看到 file_get_contents()函数推测可能存在文件包含(参看LFI(Local File Include)漏洞学习),利用姿势如下: 利用 php://input和POST发包