寄存器就是CPU内存区域,与内存里面的存储介质没有区别,但是CPU极其昂贵,运算速度非常快
三十二位通用寄存器寄存器的用途不是固定的,就好像代码编写时候的命名规范一样,不按规范代码也是可以正常运行,但是约定俗成的规矩最好还是遵循相关规定,那样可以提高工作效率
12345678EAX 0 累加器ECX 1 计数EDX 2 I/O指针EBX 3 DS段指针ESP 4 堆栈指针EBP 5 SS段指针ESI 6 源指针EDI 7 目标指针
利用OD打开一个exe程序
EIP也是一个寄存器,代表当前程序运行到哪个位置,我们用od打开exe程序的时候会停在某个位置,点击F8会向下一步执行
注意填入的数据不要超出32位,否则会丢弃高位数据
寄存器分类1234567891011121314151617181916位寄存器AX 0CX 1DX 2BX 3SP 4BP 5SI 6DI 7 8位寄存器ALCLDLBLAHCHDHBH
注意,16位寄存器是32位寄存器的一部分,两者是包含关系
猜一下al的数值改变eax的值会有什么变化
注 ...
什么是云函数简单点说就是可以在不用服务器的情况下执行各种代码,对于咱们网安人员来说只需要借助云函数的特性实现代理池效果就够了
网络结构
下载项目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() 语句之前,进行了过滤,例如过滤了单双引号,可以采用如下方法进行绕过 ...










