标签:key 格式化 14 学习 漏洞 exp printf pwn 题目
题目:CGfbs
题目描述:菜鸡面对着printf发愁,他不知道printf除了输出还有什么作用。
题目分析:照着题目描述来看,应该是格式化字符串的漏洞。老规矩,照着步骤走:
1.checksec和file
2.ida
由上面的我们用32位的idapro打开。
可以看到结构也十分简单,pwnme等于8的时候,就可以得到flag
那么如何得到宁pwnme为8呢,这里我们可以看到printf(&s)这是一个很明显的漏洞了。在上面那道题,以及上一篇博客中很清楚地提到过。
3.写exp
这里也一样要搞清楚在数据栈中偏移了多少。
我们看一下输入的AAAA在数据栈中是什么位置
发现在第十位
那么下面我们就可以构建我们的exp了
但是这里我一直有个疑问,这个任意写到底是怎样在操作的,对我来说,我还没搞清楚。
4.得到结果
题目:实时数据监测
题目描述:
小A在对某家医药工厂进行扫描的时候,发现了一个大型实时数据库系统。小A意识到实时数据库系统会采集并存储与工业流程相关的上千节点的数据,只要登录进去,就能拿到有价值的数据。小A在尝试登陆实时数据库系统的过程中,一直找不到修改登录系统key的方法,虽然她现在收集到了能够登陆进系统的key的值,但是只能想别的办法来登陆。
解题思路:
本来在上面的题目正愁着还没理解格式化输出漏洞,这里就来了一个题帮助我好好理解。
1.checksec和file查看文件
32位程序,但是这次出现了一种新的保护方式,RWX。
2.ida查看程序
程序的内容和结构一目了然,改变key的值,即可得到flag,改变值用格式化字符串任意写的漏洞。
3.写exp
在写exp之前必须先知道在栈中哪个参数。这里我们用
然后我们发现在第12个参数的位置
这个题帮我多次试验,终于知道了在格式化字符串中填入什么才能得到规定的写入值了,那就是%(对应值-4)c%N$n。
exp如下
4.得到结果
标签:key,格式化,14,学习,漏洞,exp,printf,pwn,题目 来源: https://www.cnblogs.com/Samforrest/p/13501576.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。