CISCN&铁三-web
国内网安实在是太强辣,最后10分钟直接掉一百来名捏😠Safe_proxy
看源码可以发现器/路由存在ssti,并且为无回显的ssti。这时有两个思路,内存马或者打回显。我这里打算打500报错回显比较方便打内存马相对要绕的会比较多python flask 新型回显的学习和进一步的深入
因为waf禁了__,popen sys os等我这里选择拼接绕过
1code={{url_for["_"+"_globals_"+"_"]["_"+"_builtins_"+"_"]['setattr'](((lipsum['_'+'_spec_'+'_']|attr('_'+'_init_'+'_')|attr('_'+'_globals_'+'_'))[' ...
thinkphp5.x专题
123composer create-project topthink/think=5.0.* tp5 --prefer-dist修改composer.json的topthink/framework值为5.0.5composer install
国城杯
这个国城杯的题目难度有那么亿点高,复现一下应该能学到不少东西Ez_Gallery首先是爆破验证码我这里直接用captcha-killer+codereg.pyhttps://github.com/f0ng/captcha-killer-modified/tree/main
可以爆破出密码为123456。然后进入后可以发现一个文件读取看源码
我们可以发现是一个无回显且flag没有读取权限的ssti,那这就很明显了其想让我们将执行命令的内容带出来或者盲注。但因为其将数字和点都给过滤了,那么我们弹shell和dns外带的难度就很大了。
而且因为这道题目并比赛flask框架的而是pyramid加wsgiref的我们不好使用内存马。
而我在之前有看过一个师傅的flask宽假的响应头回显思路并自己进行了一次调试python flask 新型回显的学习和进一步的深入
其原理像server头等固定的响应头其实都是硬编码在代码里的,我们可以通过将这些值污染为我们命令执行的结果从而进行回显
我先在本地简单调了一下这个宽假,我前面说了这些请求头是硬编码的,所有大概率是在程序刚开始运行时就写入的。我直接将 ...
thinkphp3.2.3审计专题
url模式普通模式tp的路由结构是由模块,控制器,方法组成的
/IMG_20241129-164601322.png)tp中默认的控制器就是IndexController
模块其实就是上层文件夹名称,也可以从代码中看出来/IMG_20241129-164855744.png)
控制器方法其实就是类底下的方法了
不同tp的版本会有些许差异但本质还是没有区别/IMG_20241129-185102283.png)都是文件名,类名,方法名
其url的访问形式就是
1http://xxxxx/?m=Home&c=Index&a=h_n&xxx=xxx
m代表模块名c代表控制器名a就是方法名xxx就是其他参数了
PATHINFO模式这个模式的url结构如下1http://xxxxx/index.php/Home/Index/h_n?xxx=xxxx这个方法同样是模块,控制器,方法,而参数就可以值使用正常的?来传我们也可以通过如下方式来传参1http://localhost/?s=/Home/Index/h_n/name/LSE/IMG_20241129-1700449 ...
权限维持
不知道干点什么,干脆玩玩维权吧。web67012345678910111213141516<?phperror_reporting(0);highlight_file(__FILE__);$a=$_GET['action'];switch($a){ case 'cmd': eval($_POST['cmd']); break; case 'check': file_get_contents("http://checker/api/check"); break; default: die('params not validate');}
经过尝试后发现其在check后会删文件。
而想到对抗方法当然就是内存马了,于是我在网上随便找了一个内存马123456789101112<?php ignore_user_abort(true);//允许脚本再客户 ...
mysql:udf提权
打玄机的时候遇到了mysql的日志审查,而我本人对于提权操作其实并不是特别了解。本文将记录mysql的udf提权的学习什么是udfudf的全称为User Defined Function,是mysql为了拓展自己的灵活性出的一个功能,其允许用户通过动态链接库来自定义function。
创建与使用1CREATE FUNCTION <function_name> RETURNS <return_type> SONAME '<library_name>';
创建的function_name必须是我们so文件在编译前的c文件内声明过的。且so文件必须在plugin路径下我们可以通过如下路径来查询plugin路径1show variables like "%plugin%";
调用1SELECT <function_name>(<parameters>);我们可以使用如下方法来自定义创建我们所需的so文件123456789101112131415161718#include <stdio.h ...
玄机靶场第二章日志分析
第二章日志分析-apache日志分析1、提交当天访问次数最多的IP,即黑客IP:apache的日志ip是在第一个我们直接分组输出第一个组就是ip让后在统计次数即可12cat access.log.1|awk '{print$1}'|sort -n|uniq -c
flag{192.168.200.2}
2、黑客使用的浏览器指纹是什么,提交指纹的md5:直接过滤出黑客ip然后将ua头进行md5加密即可1cat access.log.1|grep "192.168.200.2"
3、查看index.php页面被访问的次数,提交次数:过滤/index.php1cat access.log.1|grep "/index.php"|awk '{print$1}'|sort -n|uniq -c
4、查看黑客IP访问了多少次,提交次数:l第一题就出了1cat access.log.1|awk '{print$1}'|sor ...
初探java内存马
其实很早就想学习java内存马的知识了。虽然现在对java安全的了解还很浅显,但是因为我个人对各种马比较有兴趣,所以这篇文章想浅显的认识一下内存马基础知识学内存马之前我们需要先了解的概念挺多的1.啥是servlet2.啥是tomcat,tomcat的结构逻辑又是啥。
我们先来谈一下servletservlet是javaweb中一个非常重要的组件,其可以获取客户端的请求与发生响应到客户端。
servlet的生命周期Servlet 初始化后调用 init () 方法。Servlet 调用 service() 方法来处理客户端的请求。Servlet 销毁前调用 destroy() 方法。最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。https://www.runoob.com/servlet/servlet-life-cycle.html
DEMO先来简单写几个servlet的demo吧首先我们先来看一下jakarta EE自己生成的javaweb代码123456789101112131415161718192021222324252627package org.lse.j ...