西邮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/即为第四关

原文地址:https://www.cnblogs.com/rainmote/p/4160552.html