Lemon's blog

Lemon's blog

Do one thing at a time, and do well.

I春秋——web Write up(二)
前言:最近都没有更新过,感觉博客快荒废了,得更新了[]~( ̄▽ ̄)~*,这次总结一下做的一些web题。 一、Not Found打开页面便是404,但是下面有一个404.php,访问一下除下有出题人的haha,没有其他信息了,御剑扫一下打开页面,发现也没有有用的信息重新回到原点,看看是不是漏掉些什么,看了出题人的提示加上一个奇怪的参数是不是和HTTP请求方式有关,百度查下 HTTP请求的方法:HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式1、OPTIONS返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服...
XCTF(攻防世界)—进阶web题Write Up(二)
前言:继续总结学到的新知识 mfw在about页面发现,搭建网站时用了git,尝试一下是否为git源码泄露输入:1http://111.198.29.45:36544/.git/ 果然是源码泄露,那就查看一下文件,发现并没有找到flag,在Github上下载git源码泄露工具,可以得到其源码。 输入相应的命令: 1python2 GitHack.py http://111.198.29.45:36544/.git/ 得到源码,发现并没有flag查看index.php发现并没有对GET进去的参数进行过滤,assert函数中参数为表达式可以当作PHP文件来执行,再了解一下以下这两个函数: ...
Bugku—web题总结(三)
前言:继续总结,学习知识!!! 你从哪里来根据提示,可以知道这道题应该是构造referer——伪造来源浏览器,抓包进行伪造 1Referer:https://www.google.com 程序员本地网站根据提示,这道题考察的是xff——伪造IP地址来源,抓包修改成本地IP地址即可 1X-Forwarded-For: 127.0.0.1 md5 collision(NUPT_CTF)简单的MD5碰撞,由==的用法,0 == 字符串是成立的,从而可以绕过MD5检查。之前了解过MD5算法的漏洞,会将0e开头的当作0,所以只要找到常见的一个以oe开头加密过的MD5值即可 举个例子: 1234...
了解PHP伪协议
前言:最近做题web题很多都涉及了PHP伪协议,这次就来详细的了解总结一下! 练习每个协议前,相关的配置必须开启或者关闭才不会报错,可以参考这张图片下面就来了解PHP伪协议 php://说明: PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。 php:// 访问输入输出流,有许多子协议,下面就来学习一下 (一)php://filter说明: php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-o...
python学习(函数)
前言:目前先将python的基础语法和知识学完,再去尝试写脚本,这次就学习python中的函数。 一、定义函数 使用关键字def 来定义一个函数,这就是函数定义,而且定义以冒号结尾。 格式:12345def 函数名 :内容函数名 例如: 123456def message(): """打印的信息""" print("hello world")message()输出结果:hello world """打印的信息"""被称为文档字符串的注释,文档字符串用三引号括起来。 二、向函数传递信息12345def message(u...
Bugku—web题总结(二)
前言:之前没有总结完,这次继续总结! 输入密码查看flag观察到爆破而且密码是五位数字,那就用burp来爆破设置payload:爆破出来了,提交即可得出flag 点击一百万次提示是JS,查看一下源代码,发现虽然不太懂JS代码,但是还是可以理解这个代码大意,变量clicks通过点击来自增。但是这里变量也可以通过POST进行传递,那就直接给变量传一个10000000. 备份是个好习惯发现是MD5加密后的值,而且两段相同,解密一下空密码,看来解题思路应该错了,重新查看题目发现这道题与备份有关,常见的PHP备份后缀名有.php.bak等输入http://123.206.87.240:8002/w...
Bugku—web题总结(一)
前言:最近做了一些Bugku入门的web题目,感觉web题挺有趣的,并非是得出flag,而是可以通过一个题目学习到很多知识。 域名解析题目说把 flag.baidu.com 解析到123.206.87.240 就能拿到flag,如果了解域名解析的原理和系统文件host的作用,那这道题就很简单了。 通俗的话说:域名是为了我们方便记忆,但计算机识别的是IP地址,所以要将域名解析为IP地址才能访问到自己想要访问的网站。而host文件中放的是一些网站的DNS(域名系统)缓存,通过本地解析会提高访问速度,如果没有host系统文件,我们发送请求,服务器端DNS接收解析再返回给客户端,这会慢很多,当然...
XCTF(攻防世界)—进阶web题Write Up(一)
前言:这段时间做了一些XCTF的web进阶题,真的是学习到了很多知识,就来总结一下。 Cat一开始以为是命令注入,恰好最近学习了命令注入,就先来测试一下: 输入127.0.0.1,发现是可以ping通的输入127.0.0.1 | phpinfo() 或127.0.0.1 & net user就会显示: 1Invalid URL 看来命令注入的方法是行不通的(其他连接符也被过滤了,如&&、||等) 没有思路了,就看了大师傅们的Write Up,大意就是在URL那里构造错误的参数,使页面进行报错,通过页面报错从中找出需要的信息。 当输入?url=%79执行完时变成了...
PHP危险函数总结
前言:PHP中有很多危险函数,如phpinfo() ,这次就来详细总结一下PHP中的危险函数,并借助大师傅们的例子来进行代码审计的练习。 一、PHP代码执行函数eval()函数定义和用法: eval() 函数把字符串按照 PHP 代码来计算.该字符串必须是合法的 PHP 代码,且必须以分号结尾。 这个用法就会产生漏洞,通过一个例子来看一下: 123456789<?php$var = "var";if (isset($_GET["arg"])){ $arg = $_GET["arg"]; eval("\$var = $arg;"); ...
PHP反序列化漏洞学习(一)
前言:PHP反序列化也是web安全中常见的一种漏洞,这次就先来大致了解一下PHP反序列化漏洞的基础知识。 一、PHP序列化和反序列化在学习PHP反序列化漏洞时,先来了解一下基础的知识。 (一)PHP序列化函数 : serialize() 所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。 一开始看这个概念可能有些懵,看了很多大师傅们的博客后,慢慢明白这个概念的道理。 在程序执行结束时,内存数据便会立即销毁,变量所储存的数据便是内存数据,而文件、数据库是“持久数据...
avatar
Lemon
witness me