You can only put materials on one side of any given object unless you are using shaders which specifically render backfaces. Because of backface culling being one of the simplest and fastest graphics optimizations, it is always assumed that you will be viewing meshes from one side only!
For what you want to do here, I would have two cubes- one with the normals pointing out, and one with the normals pointing in. You'll have to use some external application to make the 'inside-out' one, because Unity does not normally provide that kind (Blender/Maya).
You could always build a texture shader and use Cull Off/Cull Front/Cull Back to achieve the same result nonetheless.
Shader "Show Insides" {
SubShader {
Tags { "RenderType" = "Opaque" }
Cull Front
CGPROGRAM
#pragma surface surf Lambert vertex:vert
void vert(inout appdata_full v)
{
v.normal.xyz = v.normal * -1;
}
struct Input {
float4 color : COLOR;
};
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = 1;
}
ENDCG
}
Fallback "Diffuse"
}
SV_IsFrontFace
semantic to make this determination? \$\endgroup\$