Conlonial's blog


  • Home

  • Archives

20190422做题总结

Posted on 2019-04-22

20190422做题总结

1. RSA2

首先对pubkey.pem进行信息提取

1
openssl rsa -pubin -text -modulus -in pubkey.pem

得到n和eImgur

对n在http://factordb.com/进行在线分解,得p,q![Imgur](https://i.imgur.com/nog6NnU.png)

此时已知p,q,e即可得到d为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# coding = utf-8
def computeD(fn, e):
(x, y, r) = extendedGCD(fn, e)
#y maybe < 0, so convert it
if y < 0:
return fn + y
return y

def extendedGCD(a, b):
#a*xi + b*yi = ri
if b == 0:
return (1, 0, a)
#a*x1 + b*y1 = a
x1 = 1
y1 = 0
#a*x2 + b*y2 = b
x2 = 0
y2 = 1
while b != 0:
q = a / b
#ri = r(i-2) % r(i-1)
r = a % b
a = b
b = r
#xi = x(i-2) - q*x(i-1)
x = x1 - q*x2
x1 = x2
x2 = x
#yi = y(i-2) - q*y(i-1)
y = y1 - q*y2
y1 = y2
y2 = y
return(x1, y1, a)

p = 275127860351348928173285174381581152299
q = 319576316814478949870590164193048041239
e = 65537

n = p * q
fn = (p - 1) * (q - 1)

d = computeD(fn, e)
print d

运行结果如下

Imgur

此时d已知,即可对flag.encrypt这一密文先进行读取:

1
2
>>f = open('flag.encrypt')
>>p = f.read()

Imgur

即可看到密文内容,接着对密文内容进行16进制编码:

1
>>p.encode('hex')

就得到它16进制的形式:8fbb3b0f58b88b53e79d85c1ed68c355ac57c75884bd1e8e21c7ae9c6c82ddbb

在转换为字符串,即为c:

1
2
>>c=0x8fbb3b0f58b88b53e79d85c1ed68c355ac57c75884bd1e8e21c7ae9c6c82ddbb
>>print c

现在利用公式pow(c,d,n)就可以得到明文十进制形式

1
2
3
4
5
>>d = 10866948760844599168252082612378495977388271279679231539839049698621994994673

>>n = 87924348264132406875276140514499937145050893665602592992418171647042491658461

>>pow(c.d.n)

十进制形式无法进行编码,故要转换为16进制,利用hex:

1
2
>>pp = 10786438895796771334553405582542071004794259807619608563847580041597
>>hex(pp)

最后解密可得flag:

1
2
>>s='666c61677b5930755f6d34795f754e6433727374616e645f5253417d'
>>s.decode('hex')

Imgur


Wiener Tricky

首先同上对rsa_pub.pem进行信息提取,再对n进行分解,发现n太大无法分解。根据题目,可知要采取维纳攻击,在网上查找到相关的代码,https://github.com/pablocelayes/rsa-wiener-attack 后下载所有代码于桌面,运行程序可得解密密钥d:

Imgur

接下来步骤同上题,提取flag.enc文件内容

Imgur

进行16进制编码,再转为10进制c:

Imgur

现已知c,d,n,即可求明文pp:

Imgur

将明文变为16进制后在解密即得flag

Imgur
Imgur

但这时发现报错TypeError: Odd-length string

经过搜索得知错误原因为字符串长度为奇数, 一位16进制数转换为4位二进制数, 所以奇数个16进制数无法刚好转换为整数个字节。而高位的0经常被省略,所以在高位补零后得到flag:

Imgur

post

Posted on 2019-04-19

python学习到基本数据类型,编写了例程

准备看书第三章的内容

20190417学习进度

Posted on 2019-04-17

第二章读完,主要了解了程序执行的步骤,从头文件被预编译到高级语言编译、高级语言转为机器语言的过程。

python学习到数据类型,简单随例程进行了编写

20190415学习记录

Posted on 2019-04-15

读完了《程序员自我修养》的第一章,本章主要回顾了解了计算机的软硬件基本结构、操作系统、线程的一些原理运行过程。

python学习完了语言的基本语法和格式,随慕课网上习题编写了包括数字转换、条件输出等七个简单程序

20190913进度

Posted on 2019-04-13

今天阅读到了1.4章,了解计算机硬件框架的发展,重点了解了采用PCI/ISA及南北桥设计的框架;人们为提高CPU速度采取的多核,SMP技术。操作系统硬件驱动和文件read过程

python随mooc安排,利用交互式和文本式编写了求圆面积、绘同心圆、五角星的程序,初步了解了python语言特点。详细学习第一个实例:温度转换。

学习进度

Posted on 2019-04-12

20190412 学习总结

今天由于在写毕业论文,没有太多进展,只阅读了《程序员的自我修养》1.1的内容,python选择听慕课方式进行学习,还安装了python需要的一些软件。四月底毕业论文中期检查,这几天还要同时兼顾论文,尽量保证学习进度,

进度总结

Posted on 2019-04-11

本周总结

  1. 这周看完了《C程序语言设计》这本书,重新回顾了c程的一些知识,做了一些编程题目作为巩固和练习。

  2. 接下来准备同时进行python的学习和阅读《程序员的自我修养》。

  3. 尝试做了oj上RSA2,有一些进展,对相关知识仍在学习状态。

Hexo+Github搭建博客

Posted on 2019-04-03

前天花了小半天时间完成了pages的搭建和博文上传,其实在这几天中一直在踩雷,网上的一些教程很多由于版本更新等等或多或少的不适用现在的情况、或者在文件上传中出现各种的问题….同时我也发现了身边很多人还是在用仓库作为简单博客,所以我想结合网上教程和我自己其中的经验写一篇简单的总结,希望这篇博客用来给自己提醒也分享这段经验给别人避雷吧。

安装Node.js

首先下载最新版Node.js,安装选项全为Next,安装好后按win+R打开命令提示符,输入node -v和npm -v,如果出现版本号就是安装成功。

安装Git

为了把本地的网页文件上传到github上面去,我们需要用到分布式版本控制工具Git。安装选项还是全部默认。安装完成后还是在在命令提示符中输入git –version验证是否安装成功。安装好后在任何文件夹下右击均可看到Git Bash here。

在github新建项目

打开github,在右边找到repository,Imgur

Imgur注意name格式为username.github.io

然后项目就建成了,点击Settings,向下拉到最后有个GitHub Pages,点击Choose a theme选择一个主题。然后等一会儿,再回到GitHub Pages,点击链接进入博客可见如下图Imgur

安装Hexo

选择一个路径新建一个文件夹来放博客文件,比如我的C:\study\blog,在该目录下右键点击Git Bash Here,打开git的控制台窗口,以后我们所有的操作都在git控制台进行,就不要用Windows自带的控制台了。

首先利用cd定位到该目录下,输入npm install hexo-cli -g安装Hexo。会有几个报错,无视它就行。然后输入npm install hexo --save继续安装。安装完后输入hexo -v验证是否安装成功。首先说一下这个安装过程是有些久的,但是在安装时候大家如果发现安装太过慢(比如过了20min完全没有新进度,我就遇到了,傻傻等了30min)大家可以关闭控制台,再重新输入指令下载会好一些。然后就要初始化我们的网站,输入hexo init初始化文件夹,接着输入npm install和npm install hexo-server --save安装必备的组件。这样本地的网站配置也弄好啦,输入hexo g生成静态网页,然后输入hexo s打开本地服务器,然后浏览器打开http://localhost:4000/,就可以看到我们的博客啦,效果如下![Imgur](https://i.imgur.com/6BUXuYT.png)

将github与本地相连

首先右键打开git bash,然后输入下面命令:git config --global user.name "你的github用户名"和git config --global user.email "github绑定的邮箱"。然后生成密钥SSH key:ssh-keygen -t rsa -C "github绑定邮箱地址"。接下来找到.ssh这个文件夹,我的在下图位置Imgur

进入后打开id_rsa.pub(打开方式有sublime推荐这个或者word也可以),复制里面的内容,打开github,在头像下面点击settings,再点击SSH and GPG keys,新建一个SSH,名字随便。把复制的内容复制到新建的SSH中。Imgur接下来再bash打开控制台输入ssh -T git@github.com,如果如下图所示,出现你的用户名,那就成功了Imgur

打开你刚才新建的文件夹 用编辑器 打开 _config.yml

Imgur

修改最后一行的配置:

1
2
3
4
deploy:
type: git
repository: https://github.com/conlonial/conlonial.github.io
branch: master

写文章发博客

首先在博客根目录下右键打开git bash,安装一个扩展npm install hexo-deployer-git --save。然后输入hexo new post “article title”,新建一篇文章。然后打开C:\study\program\blog\source_posts的目录,可以发现下面多一个.md文件,用sublime打开它,如图

Imgur

这时候大家要注意!!hexo有一些md格式,错了会导致上传失败,见下图

Imgur

不管是tags、title他们后面的冒号后一定要有一个空格!

编写完markdown文件后,根目录下输入hexo g生成静态网页,然后输入hexo s可以本地预览效果,最后输入hexo d上传到github上。这时打开你的github.io主页就能看到发布的文章啦。

Imgur
Imgur

关于编辑修改博客等

首先在博客中插入本地图片时,需要首先上传在图床,我用的是imgur,非常方便

Imgur

另外我在编辑时还遇到的问题有注意要使用英文输入符号,不然有时会出现问题。

删除博客先删除本地文件,然后通过生成和部署命令进而将远程仓库中的文件也一并删除。首先进入到source / _post 文件夹中,找到要删除的.md文件,在本地直接执行删除。然后依次执行hexo g,hexo d,再去主页查看你就会发现你的博客已经删除啦。

做题的总结

Posted on 2019-04-02

h2这一段时间在补编程方面的一些知识还花了小半天修改博客,题断断续续做了几道,算是对CTF解题稍有了一些些了解,也同时深以为路漫漫其修远兮。这篇博客想把自己做的为数不多的几道题总结一下。

首先misc作为最好入手的类型,我首先做了signin和poem,这两道就是让我们了解了提交flag的标准格式:flag{**}。而poem则是简单的下载提供的图片看图得答案。
接下来是LSB和docx这两道题。LSB这道题给了很多hint,我首先在网上搜索了LSB,了解了LSB最低有效位在CTF中有一种题型叫做LSB隐写,简单讲就是修改RGB颜色分量的最低二进制位,写入加密信息,而人眼无法注意到前后的变化。接下来就下载了能帮助我们解决LSB隐写的Stegsolve,用它打开图片转换不同的频道,最后得到下图:
Imgur
扫描二维码得到了flag。
docx这道题在搜索得知docx实质为一个zip文件时,我尝试将文件的格式改为.zip,之后在文件夹中得到了flag所在的文件:
Imgur打开flag.xml,即为所求。
今天做了一道crypto题,what’s the RSA ,RSA顾名思义既非对称加密,之前所理解的非对称加密,公钥私钥仅仅停留在理论阶段,面对一道RSA题,首先看到所给的是密文和私钥,那么思路就是利用私钥来解密文即可,在搜索了一些RSA题的做法后,我首先是在ubuntu下下载了openssl,他是专门用来加密解密的一个软件,接下来在终端下rsa_private_key.pem文件所在路径下,利用openssl rsa -in private.pem -text -modulus得到了私钥,接下来把这个私钥存在名为private.key里和flag.encrypt放在桌面下,再进行解密,根据我看的文章,不同填充方式对应不同语句执行,我这里尝试了openssl rsautl -decrypt -in flag.encrypt -private.key -out flag.de后,在桌面生成了一个flag.de文件,即为所求。
Imgur


现在做题的不管质量都亟待提高,但是通过简单的这几道题我觉得开始慢慢养成敢自己动手,不遇题望而生畏,对于查资料也比原来更能甄别一些有用的东西还算微小的进步吧,希望自己能尽快做出其他题型,在做题中提高。

Untitled

Posted on 2019-04-01

some thoughts after reading”So you want to work in security?”

作为即将进入安全领域学习的小白,读完Goole Project Zero成员, Ivan Fratric的名为“So you want to work in security?” blog (http://ifsec.blogspot.com/2018/02/so-you-want-to-work-in-security-and-for.html[](https://)) 后,了解一些对于如何进行安全学习甚至今后从事安全工作的一些建议,对此我有些自己浅显的感想,以此为自己今后的学习提个醒。


* 关于学习态度

  1. 自己动手做事

    任何学习不能只依赖别人的帮助,对于初学者第一个大关就是眼高手低,不愿意动手不敢下手,但是学会独立思考和独立解决问题才能真正有所提升,这是安全学习无法绕开的一关。如今各软硬件技术的发展十分迅速,一个良好的自学习惯才能让我们更好的适应形势。

  2. 不放弃不怕失败

    当遇到不理解的事情时,不要放弃。这一点对于新手很重要,特别是在刚开始和阅读各种资源时,会遇到很多不理解的名词和内容。对此,我觉得要有选择性的跳过,同时在查询了解这些内容时事实上是对自己知识储备和学习能力有所提升的,有些实在暂时无法理解的内容我觉得是可以暂时跳过的,但这不意味着彻底抛开,过段时间回顾可能就有了新的理解。下面这句话给我留下很深的印象:

    “同时由于安全工作的特殊性,很多时候你尝试的大多数东西都不会起作用,你需要接受它,但不要让它阻止你尝试它。它不会发生在你身上,它发生在我身上,它也发生在其他有经验的研究人员身上。但很容易认为它只发生在你身上,因为毕竟你最终看到的是他们的成功,而不是他们的失败。重要的是,如果你的想法失败,请在继续之前了解失败的原因。”


* 关于学习方法

  1. 善于利用twitter

    博主推荐在安全学习中利用twitter的原因,一是很多厂商和大牛在发布一些新的进展和技术时,喜欢在twitter上先发布,对于我们了解一些前沿是很好的途径;另外就是twitter也可以作为一些资料查询的地方,甚至你可以与相关领域的人士进行交流,也是很好的学习方法。

  2. 通过CTF来提升水平

    CTF竞赛很好的一点是可以作为循序渐进学习的一个方法,不至于让新手一开始就萌生退意,同时不同的题目侧重点不同,能对自己不足的方面更好的查漏补缺。但是同时要明确做题的目的和前提,做题是为了扩展思路增加实战经验;而做题的前提是要夯实基础,不为了做题去做题。


* 关于学习思维

  1. 如何提问

    前面我们说要学会独立解决问题,但这不意味着不去和别人交流,问问题。但在此之前,我们要先学会培养看问题的角度和方面,保证这些问题是有质量的。我认为能提出有意义的问题,首先要对这个问题要有宏观把握,明确关键节点所在,这也是要在实践中去培养的,下面是博主的一些tips:

1.How does this piece of software/hardware I’m interested in work? What technology it is based on? Is there source code I can read? Tutorials? Books?

2.Did someone already manage to break this piece of software/hardware I want to break? Did they publish writeups? Exploits? Conference presentations? Do I truly understand what they did?

* 总结

通过读这篇博客及其他的一些博主的内容,明确了安全学习的一些必备基础:包括编程能力,计算机基础等等,这对于我来说是要加大重视和学习步伐的方面。

12

Conlonial

recorder

20 posts
1 tags
© 2019 Conlonial
Powered by Hexo
|
Theme — NexT.Pisces v5.1.4