什么是云函数简单点说就是可以在不用服务器的情况下执行各种代码,对于咱们网安人员来说只需要借助云函数的特性实现代理池效果就够了
网络结构
下载项目1https://github.com/shimmeris/SCFProxy/tree/Python
可选最新的go版本
新建云函数注册腾讯云,搜索云函数,进入控制台,点击新建
vps配置将第一步下载的socks_client上传至vps,以及socks5目录下的requirements.txt
在当前目录下执行如下命令,注意我的python版本为3.9,各位做实验的时候记得用Python3命令字
123456python3 -m venv .venvsource .venv/bin/activatepip3 install -r requirements.txt执行python socks5.py -u "API访问路径" -bp 6666(与云函数一致) -sp 7777(socks5端口) --user admin --passwd 1q2w3E
报错解决1234Traceback (most r ...
数据宽度在现实世界中纸张有不同的大小,我们能够写下去的数据也有大有小,在计算机中也是如此,计算机中所有底层数据都是以二进制存放的,而能存放多少的二进制数区分了不同的存储单位
四位
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
我们在学习的时候就知道有正数与负数的区别,但是在计算机的眼里只有0和1,如何区分某块数据是正数还是负数需要程序规定这块数据是有符号数还是无符号数,有符号数才区分正负数,无符号数只有正数
计算机会扔掉超出自己存储范围的数据
BIT 位 一位只能存储一个0或者1
BYTE 字节 8位
WORD 字 16为 2字节
DWORD 双字 32位 4字节
问题:IP地址采用点分二进制的方式表示,一共四块,每块一个字节,请问将二进制数转换为人类易读的点分十进制方式记录,每块最大数为多少
逻 ...
进制的定义十进制由十个符号组成,0,1,2,3,4,5,6,7,8,9组成,逢十进一
八进制由八个符号组成,0,1,2,3,4,5,6,7组成,逢八进一
十六进制由十六个符号组成,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F组成,逢十六进一
二进制由两个符号组成,0,1组成,逢二进一
进制计算进制转换务必记住二进制与十六进制的对应关系
12345670 1 0 1//二进制0 + 2^2 + 0 + 2^00 + 4 + 0 + 15//十进制数
进制转换
十六进制
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
二进制
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
十进制
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
计算进制可以不用公式计算,直接利用表格进行查询
八进制
0
1
2
3
4
5
6
7
10
1 ...
概念早期SMB协议铭文在网络上传输数据,后来诞生了LM验证机制,LM机制由于过于简单,微软提出了WindowsNT挑战/响应机制,这就是NTLM
LM
NTLM
原理哈希传递是能够在不需要账号明文密码的情况下完成认证的一个技术,比如NTLM Hash、 LM Hash都不需要明文密码因此都可以被称为Hash传递攻击。
NTLM验证靠HASH值
1.获得一台域主机的权限
2.Dump内存获得用户hash
3.通过pass the hash尝试登录其他主机
4.继续搜集hash并尝试远程登录
5.直到获得域管理员账户hash,登录域控,最终成功控制整个域
1234561、client发送账户名user到server2、server判断本地账户名是否存在,没有则失败,有的话生成challenge,查找user对应的NTLM哈希,使用哈希加密challenge,生成一个net-ntlm hash存在内存中,将challenge发送给client3、client接受到challenge以后,将自己的密码转换成NTLM哈希,用生成的哈希加密challenge生成response,发送re ...
推荐各位师傅配合B站白日梦组长以及周哥的文章食用
12https://www.freebuf.com/column/3252https://space.bilibili.com/2142877265?spm_id_from=333.337.0.0
危险方法没错,还是我们的InvokerTransformer.transform
链条发现
区别于上一条链子,这条采用LazyMap这个类的get方法
factory可控,查看谁调用了get
AnnotationInvocationHandler.invoke
invoke方法,加上这个名字,看到这读完动态代理的师傅应该看出来了,这就是动态代理的一个调用处理器,只要使用代理功能,invoke就会自己调用,所以我们需要做一个动态代理
123456Class clazz = Class.forName("sun.reflect.annotation.AnnotationInvocationHandler"); Constructor construct = clazz.getDeclaredCon ...
CommonsCollections为Java标准的Collections API提供了相当好的补充。在此基础上对其常用的数据结构操作进行了很好的封装、抽象和补充。保证性能的同时大大简化代码
推荐各位师傅配合B站白日梦组长以及周哥的文章食用
12https://www.freebuf.com/column/3252https://space.bilibili.com/2142877265?spm_id_from=333.337.0.0
漏洞点该方法存在于特定版本的CommonsCollections中,也就是会有很多服务器存在这个方法
利用transform的写法调用计算器
12345678910111213141516package test;import org.apache.commons.collections.functors.InvokerTransformer;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class Test ...
命令注入漏洞审计
理解RCE 漏洞场景与危害
掌握RCE 漏洞利用手法
掌握RCE 漏洞审计方法
Low查看源代码123456789101112131415161718192021<?phpif( isset( $_POST[ 'Submit' ] ) ) { // Get input $target = $_REQUEST[ 'ip' ]; // Determine OS and execute the ping command. if( stristr( php_uname( 's' ), 'Windows NT' ) ) { // Windows $cmd = shell_exec( 'ping ' . $target ); } else { // *nix $cmd = shell_exec( 'ping -c 4 ' ...
PHP 中有一些函数是比较危险的,也是进行PHP 代码审计的时候需要重点关注的内容。
函数速查:
函数或语句或结构
eval()
assert()
preg_replace()
call_user_func()
call_user_func_array()
array_map()
$a($b)
system()
exec()
shell_exec()
passthru()
popen()
反引号
PHP 代码执行语句
掌握PHP 代码执行的相关函数和语句
eval 语句eval() 会将符合PHP 语法规范字符串当作php 代码执行。
代码示例123456789// eval.php// $code = "phpinfo();";$code = $_REQUEST['code'];// echo $code;// var_dump($code);eval($code);
一句话木马原型。
如果参数进入eval() 语句之前,进行了过滤,例如过滤了单双引号,可以采用如下方法进行绕过 ...
web渗透
未读PHP 与MySQL 交互了解PHP 与MySQL 交互流程
掌握PHP 与MySQL 交互相关函数
函数速查
函数名
作用
mysqli_connect()
与MySQL 数据库建立连接。
mysqli_close()
关闭与MYSQL 数据库建立的连接。
mysqli_connect_errno()
与MySQL 数据库建立连接时,发生错误时的错误编号。
mysqli_connect_error()
与MySQL 数据库建立连接时,发生错误时的错误信息。
mysqli_query()
执行SQL 语句。
mysqli_errno()
执行SQL 语句时,发生错误的编号。
mysqli_error()
执行SQL 语句时,发生错误的信息。
mysqli_fetch_assoc()
从结果集对象中取数据,按条取数据。
交互过程
建立与MySQL 链接。
执行SQL 语句,返回结果集对象。
从结果集对象中取数据。
关闭与MySQL 链接。
与MySQL 建立链接直接使用PHP 提供的函数。
建立链接123456$db_host = " ...
自定义函数掌握PHP 语言中函数定义的方法
掌握函数的调用
了解变量的作用范围
了解传参过程
函数定义函数就是可以完成固定功能的语句或语句集合,可以重复调用。
函数语言结构1234567function 函数名(形式参数1,形式参数2...){ //函数体 return 返回值}函数名()
定义一个简单的函数:
1234567// funtion.phpfunction test(){ echo "This is function ".__FUNCTION__;}test();
函数传参12345678// function.phpfunction add($x, $y){ $sum = $x + $y; return $sum;}echo add(10, 3);
注意
function 是PHP 的关键字,用于完成函数的定义;
函数名的命名,应该避开PHP 关键字,命名规则与变量的命名规则相同;
形式参数,形参,给函数传递参数用的,仅作占位用;
实际参数,实参,真正参与 ...