文件包含漏洞
[[文件下载常用路径]]
文件包含漏洞 LFI labsLFI-1根据提示我们直接访问之前在文件夹里写的shell脚本。
http://127.0.0.1/lfi-labs-master/LFI-1/?page=../info.php#
../指的是上级文件夹。
LFI-2根据提示我们采用%00进行截断。
http://127.0.0.1/lfi-labs-master/LFI-2/?library=../../info.php%00
使用%00截断注意的问题:
(1)php版本小于5.3.4。(2)php的magic_quotes_gpc为OFF状态。
LFI-3查看源码:
123456789101112131415161718<?php include("../common/header.php"); ?><!-- from http://www.ush.it/2009/02/08/php-filesystem-attack-vectors/ --><?php hint("will include the ...
PHP伪协议详解
PHP伪协议详解:PHP支持的伪协议:123456789101112131 file:// — 访问本地文件系统2 http:// — 访问 HTTP(s) 网址3 ftp:// — 访问 FTP(s) URLs4 php:// — 访问各个输入/输出流(I/O streams)5 zlib:// — 压缩流6 data:// — 数据(RFC 2397)7 glob:// — 查找匹配的文件路径模式8 phar:// — PHP 归档9 ssh2:// — Secure Shell 210 rar:// — RAR11 ogg:// — 音频流12 expect:// — 处理交互式的流
1 php://filter php://filtephp://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。 这对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。
php://filter可以获取指定文件源码。当它与包含函数结合时,php ...
xss-labs通关教程
level 1
首先观察一下页面,我们可以知道:采用get类型传参,并且得到的参数会回显到页面之上,而且会计算它的长度。
通过观察源码我们可以发现标红的位置存在注入点。注入类型为XSS反射型注入。
将name的参数改变为
1<script>alert('xss')</script>
直接通关!!
level 2
将test改为
1<script>alert('xss')</script>
发现它并没有进行弹窗,这时候我们查看源码
发现它将<>都变成了HTML的实体字符了,猜测是使用htmlspecialchars()函数。
但是我们发现仍有地方没有被更改
但是它的语句在属性的值里,原来的语句是无法进行弹窗的这是我们更改语句使语句闭合。
"><script>alert('xss')</script>//
成功通关
level 3插入注入语句之后发现并没有出现弹窗,查看源码。
发现两处都被转义成为了HTML实体 ...
攻防世界web
第一题:baby web题目描述说想想初始的页面是什么,将URL的1.php改为index.php发现打开之后仍然是1.php。打开检查看网络的返回包,发现有向index.php发送的包,检查响应头之后发现flag。
第二题:ics-06在报表中心中发现采用get传参的方式,使用burp进行整数暴力破解,选择位置为id参数的值,有效载荷选择整数类型。
发现在2333处的数据长度异常,检查响应头之后发现flag.
第三题:Training-WWW-Robots看见robots联想到爬虫协议,在URL加上robots.txt之后出现提示
访问fl0g.php页面即可得到flag。
第四题:PHP2访问index.php的源文件index.phps。发现是一道代码审计的问题。
经过审查源代码之后可看出需要用GET方式给id参数传递一个为“admin”的值,但是会经过一次urldecode(),会将传入的值进行url解码,所以要对admin进行两次url编码。经过编码的id参数为%25%36%31%25%36%34%25%36%64%25%36%39%25%36%65将该值传入之后 ...
算法刷题
力扣刷题记录:1.合并两个有序数组题目难度:简单给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
示例 1:
1234输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]解释:需要合并 [1,2,3] 和 [2,5,6] 。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。
示例 2:
1234输入:nums1 = [1], m = 1, nums2 = [], n = 0输出:[1]解释:需要合并 [1] 和 [] 。合并结果是 [1] 。
示例 3:
...
网络是怎样链接的
名词简介:HTTP协议:HTTP协议之URL篇: http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
HTTP URL (统一资源定位符,URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下: [http://host[":"port\][abs_path](http://host[""port][abs_path/)] http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80(通常情况下可以省略);abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。 eg: 1、输入:www.guet.edu.cn 浏览器自动转换成:http://www.guet.edu.cn/ 2 ...
文件上传upload-labs通关教程
第一关
这一关根据提示是一个文件上传的前端绕过,本题采用三种方法解决:
第一种:通过直接禁用前端的JS来进行绕过。
文件上传成功。但这种方法会导致页面的某些功能显示不出来。
第二种:通过BS修改后缀名,进行绕过。
如果js代码是在本地运行,很可能抓不到数据包。
第三种:将网站源码复制下来,放到本地,然后将js代码删除。
找到文件上传的地址
在本地文件中添加地址
在本地进行上传
第二关这是一个白名单过滤,而且是MIME过滤,所谓的MIME过滤就是指对与请求包的Content-Type进行过滤,
将Content-Type改为图片的格式
成功上传。
第三关这是一个黑名单过滤
尽管.php无法上传,但是我们可以使用.phtml .php进行绕过。apache服务器能够使用php解析.phtml .php3
成功上传。
注:要在apache的httpd.conf中有如下配置代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,如果不配置他是无法解析php5代码的,访问的时候 ...
python刷题记录
第一题题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
cnt = 0
for i in range(1,5):
for j in range(1,5):
for k in range(1,5):
if i!=j and i!=k and j!=k:
print (i*100+j*10+k)
cnt+=1
print (cnt)
第二题:题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
i = int(input("请输入:"))
...
python小项目--名片信息管理系统
python 学习阶段性小项目–名片信息管理系统注:本系统未涉及到文件读取,保存
cards_main.pyimport cards_tools # 导入工具包
while True:
cards_tools.show_menu()
action_str = input("请选择希望执行的操作:")
print("")
print("您选择的操作是【%s】" % action_str)
if action_str in ["1","2","3"]:
# 新增名片
if action_str == "1":
cards_tools.new_card()
# 显示全部
elif action_str == "2":
cards_tools.show_all()
# ...
C语言小项目——学生成绩管理系统
stduent.h#ifndef STUDENT_H_INCLUDED
#define STUDENT_H_INCLUDED
#pragma once
#pragma warning(disable:4996)//visual studio 支持c语言必备内容
#define FILE_DATA_PATH "E:\\STUDENT.txt"//定义存放文件路径为STUDENT.txt文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define MAX 300//最大录入信息300人
//学生信息结构体
struct isStudent
{
char name[9]; //姓名
int number; // 默认学号8位
float chinese;
float math;
float english; //定义三科成绩;
float average; //定义平均成绩
char passwor ...
sqlilabs通关教程
[[sqlmap使用方法]]Mysql 5.0以上 有一个系统数据库 information_schema,存储着所有的数据库的相关信息,一般的, 我们利用该表可以进行一次完整的注入。以下为一般的流程。 information_schema数据库下有schemata,tables,columns等表。 table_schema是数据库的名称,table_name是具体的表名
猜数据库
select schema_name from information_schema.schemata
猜某库的数据表
select table_name from information_schema.tables where table_schema=’xxxxx’
猜某表的所有列
Select column_name from information_schema.columns where table_name=’xxxxx’
获取某列的内容
Select *** from ****
less-1: 由回显可以知道提交的语句被’’所包裹
接下来可 ...
BurpSuite 的安装
BurpSuite 的安装以下内容仅供交流学习,支持正版参考链接https://www.sqlsec.com/2020/10/winbp.html https://blog.csdn.net/dantesite/article/details/107916493
一:由于最新的BurpSuite需要高版本的JAVA所以我们先配置自己的JAVA环境。这里不再过多赘述,网上都有
二:Burp Suite Professional 2020.11.3平台 下载链接JAR https://portswigger.net/burp/releases/download?product=pro&version=2020.11.3&type=JarLinux (64-bit) https://portswigger.net/burp/releases/download?product=pro&version=2020.11.3&type=LinuxMac OSX ...