当前位置: 首页 > news >正文

推动深圳整站seo

推动,深圳整站seo,winscp怎么做网站,网页设计代码基础模板[CSAWQual 2019]Unagi 是xxe注入,等找时间会专门去学一下 XML外部实体(XXE)注入 - 知乎 【精选】XML注入学习-CSDN博客 【精选】XML注入_xml注入例子-CSDN博客 题目描述说flag在/flag下 发现有上传点,上传一句话木马试试 文件…

[CSAWQual 2019]Unagi

是xxe注入,等找时间会专门去学一下

   XML外部实体(XXE)注入 - 知乎

【精选】XML注入学习-CSDN博客

【精选】XML注入_xml注入例子-CSDN博客

题目描述说flag在/flag下

发现有上传点,上传一句话木马试试

文件类型不行

看见提示说在链接处得到上传例子

You can check out the format example here

发现是xml文件格式

看到这里就有了整体的思路,就是要用xxe注入,上传xml格式文件

通用模板

 <?xml version="1.0"?>

<!DOCTYPE  ANY [ <!ENTITY entityex SYSTEM "file:///"etc/password"> ]>

下边接题中所给的user

因为给了flag文件的路径,所以直接用/flag

payload:

<?xml version='1.0'?>
<!DOCTYPE users [
<!ENTITY xxe SYSTEM "file:///flag" >]>
<users>
    <user>
        <username>bob</username>
        <password>passwd2</password>
        <name> Bob</name>
        <email>bob@fakesite.com</email>  
        <group>CSAW2019</group>
        <intro>&xxe;</intro>
    </user>
</users>

发现还是没绕过防火墙

看wp才知道要用utf-16编码

kali 命令-编码转换

iconv -f utf8 -t utf16 1.xml>2.xml

上传得到flag

[FSCTF 2023]EZ_eval 

rce,正则限制了好多

cp 命令详解_cp命令-CSDN博客

以为cp可以利用,但是发现不行

题目是eval,利用eval函数执行php代码

关键就是过滤了?号和空格还有eval执行时用了php的结束标志表示php代码到此为止了

可以用php短标签,有三种方式:

    ​<? echo '123';?> #前提是开启配置参数short_open_tags=on​​

    ​<script language="php">echo 'hello'; #不需要修改参数开关,但是只能在7.0以下可用。​​

    ​<% echo '123';%> #开启配置参数asp_tags=on,并且只能在7.0以下版本使用​​

这里利用到了一个没学过的函数passsthru()

PHP系统程序执行函数(system,passthru,exec)简单分析(附代码)-php教程-PHP中文网

php system执行shell,php命令执行函数–shell_exec()、passthru()、exec()、system()与防止命令执行漏洞函数..._周行文的博客-CSDN博客 

passthru

— 执行外部程序并且显示原始输出

void passthru ( string $command [, int &$return_var ] )

范例

<?phppassthru("ls");
?>

执行结果:

index.phptest.php

payload :

 /?word=​<script%09language="php">passthru("ta\c%09/f*");

用%09绕过空格,其它的我都试了一遍,没绕过

用\绕过tac的限制

*通配符绕过flag的关键字

得到flag

prize_p1

代码审计一下

 首先有getflag类,内容就是输出$FLAG,触发条件为__destruct;然后就是A类的文件写入和读取。最后就是对GET[0]的关键字判断,通过后反序列化GET[0]。

prize1 | bilala's blog  参考wp

 思路:

因为正则过滤了flag,所以无法直接触发getflag类;转眼去看A类,既然有任意内容写入+任意文件读取+类,优先考虑phar反序列化

那我们就先利用A类的写文件功能写入一个phar文件,其中phar文件的metadata部分设置为getflag类,其中phar文件的metadata部分设置为getflag类,这样phar://读取之后,其中的metadata部分的数据就被反序列化,getflag就生成了,再最后程序结束触发__destruct获取flag 

绕过preg_match,可以采用数组绕过的方法

这道题主要有两个考点————————>Phar反序列化 和强制GC销毁类

浅谈php GC(垃圾回收)机制及其与CTF的一点缘分 - 码农教程 

从一道题再看phar的利用-安全客 - 安全资讯平台 

关键绕过:

throw Error使得我们的类没有被销毁,所以如何触发__destruct方法成为了一个问题 

在写入文件时,我们需要带入的getflag类中还是包含了flag这个关键字,还是会被拦住。所以我们还需要想办法绕过这个关键字,同时还得保证phar://读取时仍可以反序列化其中的数据

强制GC触发__destruct

在PHP中,正常触发析构函数(__destruct)有三种方法:

①程序正常结束

②主动调用unset($aa)

③将原先指向类的变量取消对类的引用,即$aa = 其他值;

前两种很好理解,我们来讲讲第三种

PHP中的垃圾回收Garbage collection机制,利用引用计数和回收周期自动管理内存对象。当一个对象没有被引用时,PHP就会将其视为“垃圾”,这个”垃圾“会被回收,回收过程中就会触发析构函数

class bilala{

    public function __construct($count){

        $this->count = $count;

    }

    public function __destruct(){

        echo $this->count."destruct触发";

    }

}

$aa = new bilala(1);

//这里的bilala对象就不是垃圾,因为他被$aa所引用

new bilala(2);

//这里的就是垃圾(也就是匿名对象),new出来后没被引用,就会被当作垃圾回收(所以触发析构)

echo PHP_EOL."**********************************".PHP_EOL;

$aa = new bilala(3);

//这里将$aa指向了另一个对象的引用,所以原先的对象触发析构

echo PHP_EOL."**********************************".PHP_EOL;

//程序结束,触发析构

所以在这道题中,我们可以利用取消原本对getflag的引用,从而触发他的析构函数。 

操作如下,在phar的metadata中写入的内容为a:2:{i:0;O:7:"getflag":0:{}i:0;N;}

这样的话,当phar://反序列化其中的数据时(反序列化时是按顺序执行的),先反出a[0]的数据,也就是a[0]=getflag类,再接着反序列化时,又将a[0]设为了NULL,那就和上述所说的一致了,getflag类被取消了引用,所以会触发他的析构函数,从而获得flag

参考wp写的很详细,就不一一赘述了,PHP反序列化需要很深的功底才能学的好

010editor中修改,将对应的位由1改成0,然后保存 

 phar文件是修改成功了,但这个时候这个phar是处于损坏状态的,因为我们修改了前面的数据导致后面的签名对不上。这个时候,我们还需要手动计算出这个新phar文件的签名,查看PHP手册找到phar的签名格式

 我们刚刚的phar的签名标志位为0x0002,为SHA1签名,所以我们要计算的是出的字节是[-28:-8],用脚本计算我们新的phar文件的签名,并重新写入文件(也可以导出为新文件)

可以对phar.phar文件做以上这些处理,使其成为乱码,从而绕过关键字的检测。

gzip

直接在Linux中gzip压缩一下,然后通过POST[0]上传这个文件,再读取flag

脚本执行,得到flag

 [广东强网杯 2021 团队组]love_Pokemon

人傻了

 获得hint.php的条件就是先满足switch这个循环 当满足case为 bulbasaur! 的时候它才会去执行下面这个匹配函数

 

那么这个就是说输入的字符串不包含lv100,但是经过escapeshellarg()处理之后含有lv100

这里就是一个escapeshellarg() 的考点

escapeshellarg 的作用是把字符串转码为可以在 shell 命令里使用的参数。(escapeshellarg 和 escapeshellcmd 相似,主要看是否有引号)

那么这里就可以使用漏洞:escapeshellarg()这个函数在处理超过ASCII码范围的字符的时候会直接过滤掉该字符串

那么我们直接我们可以用%81去绕过,因为%81为不可见字符(当然还有其他的)

paylaod:myfavorite=bulbasaur!&levelup=lv%81100

得到提示:

 

想获得flag那我们就要去找输出口 显然shell_exec()就是我们需要的函数 

 

那么这里有个条件就是 post传入的dream的长度不能超过20字节

那我们直接传入dream=cat /FLAG 肯定是不行的,因为上边存在过滤

把flag(大小写)和空格一些字符都过滤了那么这里的重点就是如何绕过 

读取文件:

使用od命令

od 是一个在Unix和Linux系统上可用的命令行工具,用于以不同的格式显示文件的内容。它的名称代表"octal dump"(八进制转储),因为它最初的目的是以八进制形式显示文件的内容

如何绕过FLAG

这里用到了[]通配的形式,由于黑名单中有A何L这两个字符,因此构造F[B-Z][@-Z]G,这样就能匹配上ASCII表中的@到Z之间的所有字符

最终的payload:myfavorite=mewtwo&dream=od%09/F[B-Z][@-Z]G 

得到八进制

转换成10进制得到flag

 [October 2019]Twice SQL Injection

是sql二次注入

 SQL注入之二次注入_吃花椒地喵酱的博客-CSDN博客

 首先我们尝试注册,登录都使用sql语句

发现没任何卵用

 

发现用admin成功注册进到主页

 

注入 1' or 1=1# 

 

发现回显:

因此我们可以通过注册+登录,来注册恶意的用户名(就是将sql语句当用户名写入数据库中) 

先进行注册

用户名:1' union select database()#

密码:1(下边密码都是这个)

登录发现了数据库名

接着就是用这种方式进行注入

查表

1' union select group_concat(table_name) from information_schema.tables where table_schema='ctftraining'#

 

查列

1' union select group_concat(column_name) from information_schema.columns where table_name='flag'#

 

查字段内容

 1' union select flag from flag#

得到flag

 

 

 

 

 

 

 

 

 

http://www.ds6.com.cn/news/82253.html

相关文章:

  • 国内做AI视频网站免费观看好消息疫情要结束了
  • 网站显示内容不显示网页模板大全
  • 做封面字体下载好的网站百度推广一般要多少钱
  • 广东网站建设微信官网开发宁波seo外包推广
  • 怎么做网站优刷百度关键词排名
  • 做视频网站真的挣钱吗关键词搜索热度查询
  • 呼市做引产z首大网站湖北网站建设制作
  • 深圳市住房和建设局工程交易中心优化系统的软件
  • 天津设计网站公司个人网站怎么制作
  • 杜桥做网站哪家好seo外链收录
  • 免费做app爱站seo工具包下载
  • 威海住房建设局网站北京seo设计公司
  • 廊坊高端网站制作seo标题优化
  • 沈阳市网站建设企业深圳网站建设推广方案
  • 北海网站制作上海疫情最新消息
  • 猪八戒网站做软件疫情最新情况
  • 可以做兼职的网站有哪些工作室轻松seo优化排名 快排
  • .net空网站做九九乘法表建网站有哪些步骤
  • 企业网站策划友情链接平台赚钱吗
  • 电子工程师培训机构哪个好宁海关键词优化怎么优化
  • 华为云建网站成都网站设计
  • 泊头网站制作案例日本关键词热搜榜
  • seo自学网视频教程网站搜索优化找哪家
  • wordpress只能建博客吗百度竞价优化排名
  • 色块布局网站首页模板seo基础知识
  • 网站建设需要些什么企业查询免费
  • 吉林省可信网站认证牌匾浙江网站建设推广
  • 童装网站建设日程表百度人工客服电话
  • 网站做webapp建网站找哪个平台好呢
  • 网站排名下降的原因上海seo招聘