8月14日pwn学习

题目:CGfbs

题目描述:菜鸡面对着printf发愁,他不知道printf除了输出还有什么作用。

题目分析:照着题目描述来看,应该是格式化字符串的漏洞。老规矩,照着步骤走:

1.checksec和file

8月14日pwn学习

 

 2.ida

由上面的我们用32位的idapro打开。

8月14日pwn学习

 

 可以看到结构也十分简单,pwnme等于8的时候,就可以得到flag

那么如何得到宁pwnme为8呢,这里我们可以看到printf(&s)这是一个很明显的漏洞了。在上面那道题,以及上一篇博客中很清楚地提到过。

3.写exp

这里也一样要搞清楚在数据栈中偏移了多少。8月14日pwn学习

 

 我们看一下输入的AAAA在数据栈中是什么位置

8月14日pwn学习

 

 发现在第十位

那么下面我们就可以构建我们的exp了

8月14日pwn学习

 

 但是这里我一直有个疑问,这个任意写到底是怎样在操作的,对我来说,我还没搞清楚。

4.得到结果

8月14日pwn学习

 题目:实时数据监测

题目描述:

小A在对某家医药工厂进行扫描的时候,发现了一个大型实时数据库系统。小A意识到实时数据库系统会采集并存储与工业流程相关的上千节点的数据,只要登录进去,就能拿到有价值的数据。小A在尝试登陆实时数据库系统的过程中,一直找不到修改登录系统key的方法,虽然她现在收集到了能够登陆进系统的key的值,但是只能想别的办法来登陆。

解题思路:

本来在上面的题目正愁着还没理解格式化输出漏洞,这里就来了一个题帮助我好好理解。

1.checksec和file查看文件

8月14日pwn学习

 32位程序,但是这次出现了一种新的保护方式,RWX。

2.ida查看程序

8月14日pwn学习

 

 程序的内容和结构一目了然,改变key的值,即可得到flag,改变值用格式化字符串任意写的漏洞。

3.写exp

在写exp之前必须先知道在栈中哪个参数。这里我们用8月14日pwn学习

 

 8月14日pwn学习

 

 然后我们发现在第12个参数的位置

8月14日pwn学习

 

 这个题帮我多次试验,终于知道了在格式化字符串中填入什么才能得到规定的写入值了,那就是%(对应值-4)c%N$n。

exp如下

8月14日pwn学习

 

 4.得到结果

8月14日pwn学习

 

上一篇:CTF pwn环境搭建


下一篇:[攻防世界 pwn]——Mary_Morton