desperadoccy的小窝


  • 首页

  • 归档

  • 关于

  • 标签

  • 分类

  • 友链

  • 搜索

CSP做题记录

发表于 2019-09-11 | 分类于 CSP , algorithm

前言

因为老师说CSP过了可以免考数据结构,这么好,当然得报啊。然而,刚碰到第一题就让我想起了高中被算法支配的恐惧了。难道后端检查答案不是直接对比输出的字符串吗?难道还验证输出的数据类型???
郁闷至极,这也是我放弃算法比赛的原因之一,脱离实际,考核数据极端,特写此博客让大家避坑。

阅读全文 »

XXE简析

发表于 2019-09-05 | 分类于 CTF , web

XXE原理

XXE(XML External Entity c Injection) 全称为XML外部实体注入。当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等危害。

XML简介

XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
test
DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。

阅读全文 »

SSTI入门

发表于 2019-09-05 | 分类于 CTF , web

ssti漏洞原理

服务端模板注入和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。
目前主流模板引擎有
python框架 jinja2 mako tornado django
PHP框架 smarty twig
java框架 jade velocity

阅读全文 »

sql注入进阶

发表于 2019-09-02 | 分类于 CTF , web

前言

本文涉及的平台是sqli_labs,地址为:https://github.com/Audi-1/sqli-labs
友情链接:详细WP及相关资料请访问刘师傅github博客: https://github.com/Kit4y/Sql-Injection

阅读全文 »

upload-lab WP

发表于 2019-08-25

Pass-01

只有前端验证,用burp截包修改文件后缀名。

Pass-02

对MIME进行验证,更改MIME即可绕过。

Pass-03

对后缀名进行黑名单验证,只要上传不在黑名单中的脚本就行。
一般可被识别为php脚本的后缀名有php,php3,php4,php5,php7,phtml,pht,phps,php3p

阅读全文 »

SUCTF2019WP

发表于 2019-08-17 | 分类于 CTF , wp

前言

阅读全文 »

什么是web,新手如何入门?

发表于 2019-08-10 | 分类于 CTF , web

阅读本文需要的知识储备

  • 了解PHP语法
  • 了解Mysql数据库

什么是漏洞?漏洞会有什么危害?

暑假里小明(ctfer)今天去找小红玩耍,却发现刚高考完的小红居然在家自学PHP!沉溺于码代码的小红根本无暇搭理小明,为了搭讪小明无奈凑上前去,在屏幕上看到了如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$link = mysql_connect("ip", "username", "password"); //链接数据库
mysql_query('use login_base'); //选择数据库
header("Content-type:text/html;charset=utf-8"); //设置显示文字编码
if (isset($_POST["sub"])) {
$username = $_POST["username"];
$password = $_POST["password"]; //获取表单数据
if ($username == ""|| $password == "") { //name和password不能为空
header('Refresh:3;url=index.html');
echo '请填写完整数据';
}
$sql = "select * from login where username= '{$username}' and password = '{$password}' " ;
$res = mysql_query($sql);
$result = mysql_fetch_assoc($res);
if (!$result) { //判断是否正确
header('Refresh:3;url=index.html');
echo '登陆失败';
} else {
header('Refresh:3;url=index.html');
echo '登陆成功';
}
}
mysql_close(); //关闭数据库
?>

阅读全文 »

CTF论剑场MISC篇

发表于 2019-08-09 | 分类于 CTF , wp

签到

emmm,签到。

Snake

一开始以为这题改一改user.xml就行了,然后才发现自己太天真了。
直接解压jar包,审计源码。
在Game.class文件中发现flag输出部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (this.score >= 500 && this.isshow) {
String flag = "eobdxpmbhf\\jpgYaiibYagkc{";
int key = this.snake.len - this.score;
String xx = "";

int i;
char c;
for(i = 0; i < flag.length() / 2; ++i) {
c = flag.charAt(i);
c = (char)(c ^ key);
xx = xx + c;
}

for(i = flag.length() / 2 + 1; i < flag.length(); ++i) {
c = flag.charAt(i);
c = (char)(c ^ key * 2);
xx = xx + c;
}

JOptionPane.showInputDialog((Component)null, "This is your flag CALCULATE BY YOUR SCORE:\n", "Congratulations", -1, (Icon)null, (Object[])null, xx);
this.isshow = false;
}

阅读全文 »

会话技术(php)

发表于 2019-08-06 | 分类于 php

会话技术初步认识

会话技术介绍

web会话可简单理解为:用户开一个浏览器,访问某一个web站点,在这个站点点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。

HTTP协议的特点是无状态/无连接,当一个浏览器连续多次请求同一个web服务器时,服务器是无法区分多个操作是否来自于同一个浏览器(用户)。会话技术就是通过HTTP协议想办法让服务器能够识别来自同一个浏览器的多次请求,从而方便浏览器(用户)在访问同一个网站的多次操作中,能够持续进行而不需要进行额外的身份验证。

阅读全文 »

CTF论剑场web篇

发表于 2019-08-01 | 分类于 CTF , wp

web26

php代码审计,emmm,上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php 
$num=$_GET['num'];
$str=$_GET['str'];
show_source(__FILE__);
if (isset($num)&&isset($str)) {
if (preg_match('/\d+/sD',$str)) {
echo "vagetable hhhh";
exit();
}
$result=is_numeric($num) and is_numeric($str);
if ($result) {
include "flag.php";
echo "$flag";
}
else{
echo "vagetablessssss";
}
}
?>

根据代码可以知道脚本判断用户提交的str和num是否为数字,如果是就提供flag。
可是在判断str为数字之前,先对其进行了正则匹配,这可咋办。
2333,直接利用万能的php无法处理上传数组的情况绕过它。
构造payload
?str[]=123&num=123
得到答案

阅读全文 »
1…456…8
desperadoccy

desperadoccy

desperado个人博客,一个瞎学的软工狗。

72 日志
26 分类
36 标签
RSS
GitHub E-Mail
© 2019 — 2022 desperadoccy
访问人数 人 总访问量 次