MDaemon防信息泄露

[ 2004/08/07 16:46 | by gOxiA ]
在使用Alt-N MDaemon Mail Server系统时,会泄露版本信息及域名信息,
经过研究和查找资料,发现只需要修改MDaemon.ini文件和关闭MDaemon
的MD5加密就可以屏蔽POP和SMTP泄露信息:
1、用EditPlus打开MDaemon.ini

2、添加
[Custom-SMTP]
7000=" %s ESMTP MAIL ready"
[Custom-POP]
7200="+OK %s POP MAIL ready"
[Custom-IMAP]
7800=* OK ENTMAIL IMap Server Ready


3、关闭MDaemon中的MD5加密支持:
Setup --> Misc Options --> [Servers] tab and uncheck "Servers
honor APOP/CRAM-MD5 authentication methods"


注:其实后面的那一段就是关于MD5加密的,因为帐号密码是通过明文方式传递
的,所以MD为了安全加入了MD5,只要禁用就可以了!

以下是关于MD5加密支持的附加说明:
It will stop users from using CRAM-MD5 or APOP authentication
methods and will force users to provide passwords in plain-text.
The string in the greeting is required for CRAM-MD5 and/or APOP
to function correctly.
当服务器使用域模式时,在登录后,日志事件中可能会出现Netlogon 5781错误。
域控制器上的 Netlogon 服务无法注册或取消注册多个资源记录时,系统事件日志中将记录 Netlogon 5781 错误信息。该事件描述不包含这些资源记录的名称。此外,该事件描述也可能是会让人误解的“no DNS servers are available”这一内容,

注意:这些错误的常见原因是域控制器在其 TCP/IP 属性中将其自身引用为主 DNS 服务器。当域控制器使用这种配置启动时,Netlogon 服务可能会在 DNS 服务启动之前启动。由于 Netlogon 服务必须在 DNS 中注册记录,而 DNS 服务尚不可用,因此可能会发生错误。在这种情况下,您可以安全地忽略这些错误,因为 Netlogon 服务将会在大约 5 分钟后会再次尝试注册这些记录,此时将能成功注册。不过,在这种情况下,有两种方法可以避免这些错误:
确保域控制器在其 TCP/IP 属性中不将其自身引用为主 DNS 服务器。
配置 Netlogon 服务使之依赖于 DNS 服务。这会使 Netlogon 服务在 DNS 服务启动后启动。为此,请运行 REGEDT32,并转至:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon
在右窗格中,双击 DependOnService 值,然后将 DNS 添加到下一个可用空白行中。单击确定退出注册表编辑器。

微软官方关于5781错误的KBhttp://support.microsoft.com/default.aspx?scid=kb;en-us;259277

天气好,心情好

[ 2004/08/05 10:00 | by gOxiA ]
  今天的天气格外的好!阳光明媚,凉风爽爽。虽然太阳照在身上能够感觉到夏天,但是凉爽的风却让人感觉无比的舒服。没有灰尘没有浓雾,在16楼能够看得好远。

  这么好的天气,心情也真是舒畅。如果今天是礼拜天就好了,出去游玩感受大自然,再好不过!

  MayTide网站进入最后关头了,首先要开放的是Forum,栏目图标定制后就可以先开放Forum,还需要考虑考虑是否办理ICP备案!
以下是配置Serv-U以数据库方式存储时的数据库字段名称,没有写原名称对应,因为太麻烦了!我直接写字段名称,中间会有提示!
\"数据库名称\"


User account
Group account
User access
Group access
User IP access
Group IP access
IndexNo
User
Password
PassType
ChangePass
SKey
Access
HomeDir
Privilege

Disable

LockHomeDir


MaxUsers





QuotaEnable
QuotaCurrent
QuotaMax
RatioType
RatioUp
RatioDown
RatioCredit
Expiration
Groups
以下全为空
“ASP + Serv-u 实现FTP的代码”awaysrain [原作]
<!--#include file="md5.asp"-->
<%
'**************************************************
'* 作者:awaysrain(绝对零度) *
'* 完成时间:2003-10-10 *
'* 测试环境:WIN2000SERVER,SERV-U 4.2-beta版 *
'**************************************************
Dim iniPath,iniFileName,iniStr,tmpStr,n
Dim userName,passWord,tmp

userName = "myfso222" '用户名
passWord = "awaysrain" '密码
tmp = "ai" '随机生成两个小写字母,(应该是随机生成的,但是我这里省略了)
passWord = tmp & UCase(md5(passWord)) '密码,是MD5加密过的,用动网的MD5加密程序,具体算法是随机生成两位小写字母,然后和你的密码连接后进行MD5加密,把随机生成的密码和MD5加密后的结果作为密码存放,举个例子来说比如下面的awaysrain用户,我的密码为awaysrain先随机生成两位小写字母ai,和我的密码awaysrain连接得到aiawaysrain把aiawaysrain进行MD5加密得到9118BFD94A9CE9CF37AE5BAA947ED596把随机生成两位小写字母ai和MD5加密后的结果9118BFD94A9CE9CF37AE5BAA947ED596连接得到密码ai9118BFD94A9CE9CF37AE5BAA947ED596

iniPath="D:\Program Files\Serv-U" 'ini文件的路径
iniFileName = "ServUDaemon.ini" 'ini的文件名

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set ServUIni = fso.OpenTextFile(iniPath & "\" & iniFileName,1,false)

iniStr = ""
n = 0
addedUserList = false

Set tf = fso.CreateTextFile(iniPath & "\" & iniFileName & "._awaysrain.tmp", True)
'生成新的临时INI文件

Do While not ServUIni.AtEndOfStream
tmpStr = ServUIni.ReadLine

If Instr("awaysrain||" & tmpStr,"awaysrain||User")>0 Then
'记录用户原来的数量
n = n+1
End If

If Instr("awaysrain||" & tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then
'往用户列表的部分添加现在的用户
n = n +1
tf.WriteLine("User" & n & "=" & userName & "|1|0")
addedUserList = true
End If
tf.WriteLine(tmpStr)
Loop
ServUIni.Close

'添加新用户的信息,具体内容可以在SERV-U中新建用户并对照INI文件

tf.WriteLine("[USER=" & userName & "|1]") '用户名
tf.WriteLine("Password=" & passWord) '密码
tf.WriteLine("HomeDir=e:\temp") '主目录
tf.WriteLine("RelPaths=1") '是否锁定用户于主目录
tf.WriteLine("MaxUsersLoginPerIP=1") '相同IP同时登录数
tf.WriteLine("SpeedLimitDown=102400") '最大下载速度
tf.WriteLine("TimeOut=600") '空闲超时时间(秒)
tf.WriteLine("Access1=E:\Temp|RLP") '可访问目录,可以不是一个,比如 'Access2=E:\Temp1|RLP'

tf.Close
'--------------------备份原来的INI文件--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName)
f1.Copy (iniPath & "\" & iniFileName & "._awaysrain.bak")
f1.Delete
'--------------------把生成的临时INI文件改为正式的INI--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName & "._awaysrain.tmp")
f1.Copy (iniPath & "\" & iniFileName)
f1.Delete

Set fso = nothing
%>
注:以上代码假设ServUDaemon.ini中的格式只有一个域并已经至少有一个用户 测试的ServUDaemon.ini文件结构如下: ================================== [Domain1] User1=222|1|0 User2=myfso111|1|0 [USER=222|1] Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0 HomeDir=E:\Temp RelPaths=1 TimeOut=600 Access1=E:\Temp|RLP [USER=myfso111|1] Password=ai9118BFD94A9CE9CF37AE5BAA947ED596 HomeDir=e:\temp RelPaths=1 TimeOut=600 Access1=E:\Temp|RLP 生成后的文件结构如下 ================================== [Domain1] User1=222|1|0 User2=myfso111|1|0 User3=myfso222|1|0 [USER=222|1] Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0 HomeDir=E:\Temp RelPaths=1 TimeOut=600 Access1=E:\Temp|RLP [USER=myfso111|1] Password=ai9118BFD94A9CE9CF37AE5BAA947ED596 HomeDir=e:\temp RelPaths=1 TimeOut=600 Access1=E:\Temp|RLP [USER=myfso222|1] Password=ai9118BFD94A9CE9CF37AE5BAA947ED596 HomeDir=e:\temp RelPaths=1 TimeOut=600 Access1=E:\Temp|RLP

MD5.asp Code

[ 2004/08/04 17:32 | by gOxiA ]
以下是MD5的源代码。
<%
Private Const BITS_TO_A_BYTE = 8
Private Const BYTES_TO_A_WORD = 4
Private Const BITS_TO_A_WORD = 32

Private m_lOnBits(30)
Private m_l2Power(30)

Private Function LShift(lValue, iShiftBits)
If iShiftBits = 0 Then
LShift = lValue
Exit Function
ElseIf iShiftBits = 31 Then
If lValue And 1 Then
LShift = &H80000000
Else
LShift = 0
End If
Exit Function
ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
Err.Raise 6
End If

If (lValue And m_l2Power(31 - iShiftBits)) Then
LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000
Else
LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits))
End If
End Function

Private Function RShift(lValue, iShiftBits)
If iShiftBits = 0 Then
RShift = lValue
Exit Function
ElseIf iShiftBits = 31 Then
If lValue And &H80000000 Then
RShift = 1
Else
RShift = 0
End If
Exit Function
ElseIf iShiftBits < 0 Or iShiftBits > 31 Then
Err.Raise 6
End If

RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits)

If (lValue And &H80000000) Then
RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1)))
End If
End Function

Private Function RotateLeft(lValue, iShiftBits)
RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits))
End Function

Private Function AddUnsigned(lX, lY)
Dim lX4
Dim lY4
Dim lX8
Dim lY8
Dim lResult

lX8 = lX And &H80000000
lY8 = lY And &H80000000
lX4 = lX And &H40000000
lY4 = lY And &H40000000

lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)

If lX4 And lY4 Then
lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
ElseIf lX4 Or lY4 Then
If lResult And &H40000000 Then
lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8
Else
lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
End If
Else
lResult = lResult Xor lX8 Xor lY8
End If

AddUnsigned = lResult
End Function

Private Function md5_F(x, y, z)
md5_F = (x And y) Or ((Not x) And z)
End Function

Private Function md5_G(x, y, z)
md5_G = (x And z) Or (y And (Not z))
End Function

Private Function md5_H(x, y, z)
md5_H = (x Xor y Xor z)
End Function

Private Function md5_I(x, y, z)
md5_I = (y Xor (x Or (Not z)))
End Function

Private Sub md5_FF(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
End Sub

Private Sub md5_GG(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
End Sub

Private Sub md5_HH(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
End Sub

Private Sub md5_II(a, b, c, d, x, s, ac)
a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac))
a = RotateLeft(a, s)
a = AddUnsigned(a, b)
End Sub

Private Function ConvertToWordArray(sMessage)
Dim lMessageLength
Dim lNumberOfWords
Dim lWordArray()
Dim lBytePosition
Dim lByteCount
Dim lWordCount

Const MODULUS_BITS = 512
Const CONGRUENT_BITS = 448

lMessageLength = Len(sMessage)

lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD)
ReDim lWordArray(lNumberOfWords - 1)

lBytePosition = 0
lByteCount = 0
Do Until lByteCount >= lMessageLength
lWordCount = lByteCount \ BYTES_TO_A_WORD
lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE
lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition)
lByteCount = lByteCount + 1
Loop

lWordCount = lByteCount \ BYTES_TO_A_WORD
lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE

lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition)

lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3)
lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29)

ConvertToWordArray = lWordArray
End Function

Private Function WordToHex(lValue)
Dim lByte
Dim lCount

For lCount = 0 To 3
lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1)
WordToHex = WordToHex & Right("0" & Hex(lByte), 2)
Next
End Function
Public Function MD5(sMessage)
m_lOnBits(0) = CLng(1)
m_lOnBits(1) = CLng(3)
m_lOnBits(2) = CLng(7)
m_lOnBits(3) = CLng(15)
m_lOnBits(4) = CLng(31)
m_lOnBits(5) = CLng(63)
m_lOnBits(6) = CLng(127)
m_lOnBits(7) = CLng(255)
m_lOnBits(8) = CLng(511)
m_lOnBits(9) = CLng(1023)
m_lOnBits(10) = CLng(2047)
m_lOnBits(11) = CLng(4095)
m_lOnBits(12) = CLng(8191)
m_lOnBits(13) = CLng(16383)
m_lOnBits(14) = CLng(32767)
m_lOnBits(15) = CLng(65535)
m_lOnBits(16) = CLng(131071)
m_lOnBits(17) = CLng(262143)
m_lOnBits(18) = CLng(524287)
m_lOnBits(19) = CLng(1048575)
m_lOnBits(20) = CLng(2097151)
m_lOnBits(21) = CLng(4194303)
m_lOnBits(22) = CLng(8388607)
m_lOnBits(23) = CLng(16777215)
m_lOnBits(24) = CLng(33554431)
m_lOnBits(25) = CLng(67108863)
m_lOnBits(26) = CLng(134217727)
m_lOnBits(27) = CLng(268435455)
m_lOnBits(28) = CLng(536870911)
m_lOnBits(29) = CLng(1073741823)
m_lOnBits(30) = CLng(2147483647)

m_l2Power(0) = CLng(1)
m_l2Power(1) = CLng(2)
m_l2Power(2) = CLng(4)
m_l2Power(3) = CLng(8)
m_l2Power(4) = CLng(16)
m_l2Power(5) = CLng(32)
m_l2Power(6) = CLng(64)
m_l2Power(7) = CLng(128)
m_l2Power(8) = CLng(256)
m_l2Power(9) = CLng(512)
m_l2Power(10) = CLng(1024)
m_l2Power(11) = CLng(2048)
m_l2Power(12) = CLng(4096)
m_l2Power(13) = CLng(8192)
m_l2Power(14) = CLng(16384)
m_l2Power(15) = CLng(32768)
m_l2Power(16) = CLng(65536)
m_l2Power(17) = CLng(131072)
m_l2Power(18) = CLng(262144)
m_l2Power(19) = CLng(524288)
m_l2Power(20) = CLng(1048576)
m_l2Power(21) = CLng(2097152)
m_l2Power(22) = CLng(4194304)
m_l2Power(23) = CLng(8388608)
m_l2Power(24) = CLng(16777216)
m_l2Power(25) = CLng(33554432)
m_l2Power(26) = CLng(67108864)
m_l2Power(27) = CLng(134217728)
m_l2Power(28) = CLng(268435456)
m_l2Power(29) = CLng(536870912)
m_l2Power(30) = CLng(1073741824)


Dim x
Dim k
Dim AA
Dim BB
Dim CC
Dim DD
Dim a
Dim b
Dim c
Dim d

Const S11 = 7
Const S12 = 12
Const S13 = 17
Const S14 = 22
Const S21 = 5
Const S22 = 9
Const S23 = 14
Const S24 = 20
Const S31 = 4
Const S32 = 11
Const S33 = 16
Const S34 = 23
Const S41 = 6
Const S42 = 10
Const S43 = 15
Const S44 = 21

x = ConvertToWordArray(sMessage)

a = &H67452301
b = &HEFCDAB89
c = &H98BADCFE
d = &H10325476

For k = 0 To UBound(x) Step 16
AA = a
BB = b
CC = c
DD = d

md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478
md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756
md5_FF c, d, a, b, x(k + 2), S13, &H242070DB
md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE
md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF
md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A
md5_FF c, d, a, b, x(k + 6), S13, &HA8304613
md5_FF b, c, d, a, x(k + 7), S14, &HFD469501
md5_FF a, b, c, d, x(k + 8), S11, &H698098D8
md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF
md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1
md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE
md5_FF a, b, c, d, x(k + 12), S11, &H6B901122
md5_FF d, a, b, c, x(k + 13), S12, &HFD987193
md5_FF c, d, a, b, x(k + 14), S13, &HA679438E
md5_FF b, c, d, a, x(k + 15), S14, &H49B40821

md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562
md5_GG d, a, b, c, x(k + 6), S22, &HC040B340
md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51
md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA
md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D
md5_GG d, a, b, c, x(k + 10), S22, &H2441453
md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681
md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8
md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6
md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6
md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87
md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED
md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905
md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8
md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9
md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A

md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942
md5_HH d, a, b, c, x(k + 8), S32, &H8771F681
md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122
md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C
md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44
md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9
md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60
md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70
md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6
md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA
md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085
md5_HH b, c, d, a, x(k + 6), S34, &H4881D05
md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039
md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5
md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8
md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665

md5_II a, b, c, d, x(k + 0), S41, &HF4292244
md5_II d, a, b, c, x(k + 7), S42, &H432AFF97
md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7
md5_II b, c, d, a, x(k + 5), S44, &HFC93A039
md5_II a, b, c, d, x(k + 12), S41, &H655B59C3
md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92
md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D
md5_II b, c, d, a, x(k + 1), S44, &H85845DD1
md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F
md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0
md5_II c, d, a, b, x(k + 6), S43, &HA3014314
md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1
md5_II a, b, c, d, x(k + 4), S41, &HF7537E82
md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235
md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB
md5_II b, c, d, a, x(k + 9), S44, &HEB86D391

a = AddUnsigned(a, AA)
b = AddUnsigned(b, BB)
c = AddUnsigned(c, CC)
d = AddUnsigned(d, DD)
Next

MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))
'MD5=LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D
End Function
%>

在Dreamweaver中添加透明Flash

[ 2004/08/04 16:08 | by gOxiA ]
今天在制作邮局系统时,同然想到曾看过一篇文章介绍可以在页面嵌套一个透明的Flash,于是测试了一下确实不错!主要用到的是一个wmode  transparent 定义。一下就可以搞定
  昨天,我朋友Again放弃了他老婆,熟悉他们的朋友也都没有想到Again's  wife竟然抛弃了他和家庭。具体发生的事情我也不想多写。总之,Again没有错误,男人能做到他这一步,已经是超级好男人了,我是没有见到第二个,我支持他离婚,而且强烈鄙视他老婆。

  今天雾大、风大这个天气真是莫名的奇怪,不知道怎么了!可能老天爷也坐不住了,要来惩罚我们万恶的人类!

Maytide的几个图片制作

[ 2004/08/03 18:00 | by gOxiA ]
链接Logo:
头像Logo:
另一个没有完成的链接Logo:

聚餐

[ 2004/08/03 08:58 | by gOxiA ]
  昨天发了工资,于是大家一致通过,让同事徐勇波请客,并同意我的提议,去了小肥羊。
  我们一共7个人,喝了2瓶二锅头,呵呵,感觉我是没有醉。吃的很饱,大家都很喜欢吃鸭血,这是我发现的的一大共同点。可惜没有拿上照相机,否则就可以拍照留念。
  晚上回到家里,太渴了,所以又喝了一听啤酒,一下就醉了,今天早上起来头特别疼,还吃到了!过几天还要请朋友的同事吃饭,想想吃什么好!(要么还是小肥羊吧,嘿嘿~~!)下个月发工资就该我请客了。我倒是准备请大家吃小肥羊!
  眼疼/鼻子疼,工作~工作!
分页: 170/172 第一页 上页 165 166 167 168 169 170 171 172 下页 最后页 [ 显示模式: 摘要 | 列表 ]