攻防世界misc-流量分析1

 本题涉及的知识点:

wireshark的使用,延时注入,URL解码

解题思路

打开附件,得到一个流量包,用wireshark打开

分析流量包:使用http追踪流进行追踪,得到如图所示的信息。

通过观察post请求可以发现,包含有flag字样,猜测flag就在post请求中,由于请求中的URL不便于阅读,且有乱码,先对这段请求进行encodeURL解码。

第一次encodeURL解码

第一次解码结果 

解码一次之后发现URL仍不清晰,进行第二次解码,第二次解码使用encodeURLComponent进行解码,解码之后得到

第二次encodeURLComponent解码

 第二次解码结果

可以得到URL的执行代码

id=1) and if((ascii(substr((select flag from flag),1,1))='40'),sleep(3),0)

id=1) and if((ascii(substr((select flag from flag),1,1))='40'),sleep(3),0)

代码解读:select flag from flag:查询flag

                substr(str, 1, 1):截取字符串str,从str的第1位开始,长度为1的字符串

                ascii(s):表示把字符s转化为ASCII码

                sleep(3):表示休眠3秒

        代码表示如果if条件成立,则休眠3秒(如果查询的字符的ASCII码等于'40',则休眠3秒)

所以可以得到本题考查延时注入

返回wireshark,查询延时超过3秒的http请求

http.time >=3

 如图所示,时间大于3秒的所有的http请求。

获取flag对应的ASCII码 

        对这些请求中所有的post请求进行一次encodeURL解码和一次encodeURLComponent解码,if条件中的ASCII码就是flag对应位置的ASCII码,将这些ASCII码保存,放进Python里边进行解码即可得到flag。

def AsciiToStr(list1):
    out = ''
    for I in list1:
        out += chr(I)
    return out


s1 = [102, 108, 97, 103, 123, 49, 113, 119, 121, 50, 55, 56, 49, 125]
print(AsciiToStr(s1))

 最终得到的flag为:flag{1qwy2781}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值