MIT6.828 环境搭建
总的来说,需要构建x86仿真器QEMU和一个编译器工具链。具体步骤如下:1.安装linux虚拟机,如果是64位计算机的话先安装32位支持库,输入:sudo apt-get install gcc-multilib2.在终端测试工具链是否可行,首先输入Objdump -i,输出第二行应为elf32-i386。然后输入gcc -m32 -print-libgcc-file-name,如果两个命令都成功,就说明无需再编译工具链,具体如下图所示:)3.下载qemu前,首先安装libsdl1.2-dev,libtool-bin,libglib2.0-dev,libz-dev和libpixman-1-de
2020-03-27
MIT6.828
拆弹进程记录3-5
第三阶段跳转查询地址第三阶段首先找到输入格式是“%d %c %d”,输入的第一个数需要保证在2-7之间,并根据输入的这个数来进行跳转。然后需要保证输入的第三个数字等于0x38b即907,并进一步跳转,判断第二次输入的字符和al寄存器所存是否相等,相等即通关。最后结果是”3 l 907”
第四阶段第四阶段最关键的递归调用程序我还有点迷糊,只看出来了如果第二个数是4,第一个数就是4的倍数,然后试出来的48和4。
第五阶段第五阶段就是首先知道输入字符串的长度需要为6,然后进行一个循环,由ax寄存器的值当作循环变量,每次循环依次将输入的单个字符的ascII码的低四位存到cx寄存器中,并把0x804a2
第二阶段 -第一次记录
装了一天的linux虚拟机,疲于修改各种奇奇怪怪的小bug。现在就有两个感悟:1.删除重装大法好,菜鸡必备。2.你永远不知道之前嫌弃占空间删掉的软件什么时候会再下回来,能留着就留着吧,重新下怪麻烦的。简单说下安装过程吧,我用的virtualbox+ubuntu(用vb其实是因为穷,免费使用它不香吗?)具体安装过程可见:虚拟机安装过程设置共享文件夹可能会有点问题,自动挂载行不通的话还是莫要强求了,直接用手动挂载吧。具体方法可见共享文件夹的几种设置方法全都装完后想执行一下bomb,结果???一直提醒我没有那个文件或目录。整了好久才知道是因为我的ubuntu是64位的,没有32位的运行库。在终端安装
第八次记录
题目考查点1.php文件包含漏洞2.使用php://filter绕过限制
涉及知识点1.php文件包含漏洞指服务器通过php的特性去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,导致执行了非预期的代码,从而产生安全漏洞。文件包含漏洞的一般特征如下:?page=a.php?home=a.html?file=content具体可见:php文件包含漏洞文件包含漏洞的几种利用方法文件包含漏洞详解2.使用php封装协议读取文件,一般可以使用两种方式:
?page=php://filter/read=convert.base64-encode/resource=index.
第七次记录
题目考查点1.Proof of work概念2.Xss注入操作3.修改cookie操作
涉及知识点1.proof of work,即工作量证明。简单理解就是一份证明,来确认你做过一定量的工作。或者说,只有针对某个协议或者函数进行一定量的运算得出结果,才可以取得证明。其核心特征是不对称性:工作对于请求方是适中的,对于验证方则是易于验证的。详细介绍可见pow介绍2.XSS即跨站脚本攻击,利用对输入数据过滤的不严格,导致程序执行了用户在页面中输入的恶意代码,合法用户在之后访问的时候,这些恶意代码会被执行。详细介绍可见:XSS入门XSS进阶教程3.XSS平台:在xss平台上创建项目后,在网站有xss的
第六次记录
题目考查点1.php中stripos()函数、file_put_contents()函数应用2.数组绕过方法
涉及知识点1.PHP中stripos()函数用来查找字符串在另一字符串中第一次出现的位置,并不区分大小写。返回值为字符串第一次出现的位置,如果没有找到字符串返回false。详细介绍可见stripos函数2.file_put_contents()函数可用来把字符串、数组或者数据流写入文件中,返回值为写入到文件内数据的字节数。如果写入的是数组,会利用join(‘’,$array)转化为字符串。详细介绍可见file_put_contents函数
解题步骤1.在初始界面随便输入一串数,进入一个
第五次记录
题目考查点1.php类型比较2.如何做到变量原值不同但利用md5或sha1编码后结果相同
涉及知识点1.php变量比较包含松散比较和严格比较。其中,松散比较指使用两个等号比较,只比较值,不比较类型。严格比较指用三个等号比较,除了比较值,也比较类型。详情可见php入门之类型比较2.php中sha1()函数计算字符串的SHA-1散列,md5()函数则计算字符串的MD5散列。3.经过MD5运算后结果为0的字符串,编码后需保证0e**的形式,换成数字意思为0乘10的n次方,故结果为0。例如240610708 和 QNKCDZO均符合,实际上符合的字符串很多,就不一一赘述了。4.保证变量不同但SHA-1
第四次记录
题目考查点Sql手工注入
涉及知识点1.注入点寻找2.判断字段长度3.判断字段位置4.查询数据库名、表名、表中的字段和字段信息
解题步骤以下解题步骤主要参考了这两篇文章https://www.cnblogs.com/conquer-vv/p/11307682.htmlhttps://blog.csdn.net/qq_39353923/article/details/82901903说实话,我做这个题就是照着上面文章来的,搜sql手工注入结果找到了一个差不多的题,做出来这个题很是胜之不武,也没啥成就感。具体步骤如下:1.找注入点,判断是否存在注入点常用套路是输入语句’、and 1=1或a
第三次记录
题目考查点1.对session对象的应用,以保证会话信息的一致性。2.如何正确解析和提取HTML/XML数据3.base64正确解码方式4.对SVG图像的处理
涉及知识点1.创建一个session对象来发请求,那么每次发请求用的都是这个会话对象,能够保存之前的会话信息,以保证会话信息的一致性。2.BeautifulSoup支持Python标准库中的HTML解析器,借助它可以实现对html/xml语言的解析与提取,本题使用方法为BeautifulSoup(markup,”html.parser”)。具体标签内容的提取方法可参照 http://www.jsphp.net/python/show-