zoukankan      html  css  js  c++  java
  • 西邮linux兴趣小组2014纳新免试题(三)

    【第三关】

    题目


    http://sortsth.sinaapp.com/

    分析


    查看网页源码,得知题目让找出6种排序算法,每次刷新或提交序列都变化。

    15种算法清单:

    CountingSort        计数排序 
    TournamentSort      锦标赛排序(树形选择排序)
    RadixSort           基数排序
    BinaryTreeSort      二叉树排序
    HeapSort            堆排序
    TopologicalSort     拓扑排序
    CocktaiSort         鸡尾酒排序(双向冒泡排序)
    SelectionSort       选择排序    
    QuickSort           快速排序
    PigeonholeSort      鸽巢排序
    BucketSort          桶排序    
    MergeSort           归并排序  
    ShellSort           希尔排序  
    BubbleSort          冒泡排序    
    InsertionSort       插入排序    

    最初想法是实现上述算法,然后得到每种算法的排序过程。

    观察POST提交的表单

    key是一组MD5信息摘要,猜测与排序算法序号一一对应。

    每次变化的是序列,排序算法编号,那么可以猜测答案是存储在数据库中的,尝试SQL注入password字段,未果。

    那么可以穷举某一key的password字段。

    选取一个题目

    Original: v9x3nejH     Sorted: 39Hejnvx
    9v3nejHx
    3vx9nejH
    39xvnejH
    H9j3nevx
    39vHnejx
    39ejHxvn

    获取排序算法编号:

    0.MergeSort 1.BubbleSort 2.RadixSort 3.PigeonholeSort 4.QuickSort 5.ShellSort 6.CocktaiSort 7.TournamentSort 8.InsertionSort 9.BinaryTreeSort 10.BucketSort 11.TopologicalSort 12.CountingSort 13.HeapSort 14.SelectionSort

    Key:b3beee912044ac70ff6739da05f98516

    经过尝试,发现6个序列的第一个是冒泡排序,第五个是鸡尾酒排序。

    字典正则表达式1[0-14][0-14][0-14]6[0-14]

    字典大小应为15*15*15*15=50625

    用burpsuite跑十分钟左右,得到下面结果

    1148465即为该Key对应的排序算法编号序列

    该序列排序算法应为:冒泡,选择,插入,快速,鸡尾酒,希尔

    经过多次尝试,发现上面排序算法顺序不变,只是每次算法编号不同。

    http://findakey.sinaapp.com/即为第四关

  • 相关阅读:
    经典小程序源码及其下载地址
    基于cropper.js的图片上传和裁剪
    【组件】微信小程序input搜索框的实现
    如何打造个人技术影响力
    一位90后程序员的自述:如何从年薪3w到30w!
    状态模式(State)(开关灯,状态实例为类,不同状态,不同行为)
    责任链模式(Chain of Responsibility、Handler)(请求处理建立链)
    java中创建对象的五种方法
    PrintWrite
    观察者模式(Observer、Subject、ConcreteSubject、ConcreteObserver)(监护、订阅)
  • 原文地址:https://www.cnblogs.com/rainmote/p/4160552.html
Copyright © 2011-2022 走看看